监听来电 只需要 TelephoneManager.listen(); 方法 即可 然后 传入一个 PhoneStateListener 即可
//取消监听 要采用下面方法
tm.listen(listener,PhoneStateListener.LISTEN_NONE);
listener= null;
而监听 去电 比来电 麻烦 这点不是很能理解 竟然需要 一个广播 来监听去电
需要监听 以下广播意图 :
<receiver android:name="com.itheima.mobilesafe.receiver.OutCallReceiver">
<intent-filter
>
<action
android:name="android.intent.action.NEW_OUTGOING_CALL">action>
intent-filter>
receiver>
1、需要监听具体意图和权限;
<uses-permission
android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
String phone = getResultData(); //这个方法 在广播里 可以获得 当前 打出去的 号码
除了 这种方式注册 广播 其实还可以在 代码里面 注册 和关闭 广播 这样更加灵活
//代码注册一个广播接收者
receiver = newOutCallReceiver();
IntentFilter filter = newIntentFilter();
filter.addAction("android.intent.action.NEW_OUTGOING_CALL")registerReceiver(receiver,filter);
取消在onDestroy():
//代码取消注册一个广播接收者
unregisterReceiver(receiver);
receiver =
null;