android 监听来电 和 去电

2019-04-14 21:44发布

  监听来电  只需要  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;