public class PhoneReceiver extends BroadcastReceiver {
private static final String TAG = PhoneReceiver.class.getSimpleName();
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if (intent == null) {
return;
}
/*
* String number = getResultData();
* if("123456".equals(number)){
* setResultData(null);//掛斷
* }else{
* number = "12593"+ number; //其他,則加區號
* setResultData(number);
* }
*/
if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
Log.i(TAG, "去電");
} else {
TelephonyManager tm = (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);
tm.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);
// 設置一個監聽器
}
}
PhoneStateListener listener = new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
// TODO Auto-generated method stub
super.onCallStateChanged(state, incomingNumber);
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
break;
case TelephonyManager.CALL_STATE_RINGING:
// 輸出來電號碼
Log.i(TAG, "來電:來電號碼:" + incomingNumber);
break;
}
}
};
}
AndroidManifest.xml註冊廣播接收器
<receiver android:name=".PhoneReceiver">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE"/>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
添加權限:
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"></uses-permission>