2016-07-06 4 views

答えて

0

ブロードキャスト受信機を実装する必要があります。

この例は、Incoming call broadcast receiverです。以下に重要な詳細をいくつか示します。

マニフェスト内にこれらの項目を追加する必要があります。

<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> 

    <receiver 
     android:name=".CallComplete" 
     android:enabled="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.PHONE_STATE" /> 
     </intent-filter> 
    </receiver> 
あなた CallCompleteクラスで次に

  public class CallComplete extends BroadcastReceiver { 
     public void onReceive(Context context, Intent intent) { 
         
     try { 

                TelephonyManager tmgr = (TelephonyManager) context 
                        .getSystemService(Context.TELEPHONY_SERVICE); 
                         
                MyPhoneStateListener PhoneListener = new MyPhoneStateListener(); 
                 
                tmgr.listen(PhoneListener, PhoneStateListener.LISTEN_CALL_STATE); 
         
        } catch (Exception e) { 
            Log.e("Phone Receive Error", " " + e); 
        } 

     } 

     private class MyPhoneStateListener extends PhoneStateListener { 
        public void onCallStateChanged(int state, String phoneNumber) { 
         
            Log.d("MyPhoneListener",state+"   incoming no:"+phoneNumber); 

      // zero state is CALL_STATE_IDLE 
            if (state == 0) { 

                String msg = "New Phone Call Event. Phone Number Number : "+phoneNumber; 
                int duration = Toast.LENGTH_LONG; 
                Toast toast = Toast.makeText(pcontext, msg, duration); 
                toast.show(); 

            } 
        } 
    } 
    } 

数はもはや(CALL_STATE_RINGINGされている)を使用すると、通話状態1状態のときにそれを格納する必要があります使用可能な場合は、それを保存します。

関連する問題