2010-12-01 18 views

答えて

16

あなたはPhoneStateListenerを使用する必要があります。

TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); 
tm.listen(mPhoneListener, PhoneStateListener.LISTEN_CALL_STATE); 

// somewhere else 
private PhoneStateListener mPhoneListener = new PhoneStateListener() { 
    public void onCallStateChanged(int state, String incomingNumber) { 
     try { 
      switch (state) { 
      case TelephonyManager.CALL_STATE_RINGING: 
       // do something... 
       break; 

      case TelephonyManager.CALL_STATE_OFFHOOK: 
       // do something... 
       break; 

      case TelephonyManager.CALL_STATE_IDLE: 
       // do something... 
       break; 
      default: 
       Log.d(TAG, "Unknown phone state=" + state); 
      } 
     } catch (RemoteException e) {} 
    } 
}; 

あなたのマニフェストにこの権限が含まれていることを確認してください:

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