监听电话状态的模板代码
package com.example.calling; import android.app.Service; import android.content.Context; import android.content.Intent; import android.os.IBinder; import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; public class PhoneStatusService extends Service { private TelephonyManager tm; private MyPhoneStatusListener mPhoneStatusListener; @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { super.onCreate(); // 1. 获取手机管理器 tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); // 2. 设置监听 mPhoneStatusListener = new MyPhoneStatusListener(); tm.listen(mPhoneStatusListener, PhoneStateListener.LISTEN_CALL_STATE); } /** * 3. 用内部类实现监听 * 手机状态监听 */ private class MyPhoneStatusListener extends PhoneStateListener { //当手机通话状态变化时,回调 //state :通话的3中状态 //incomingNumber:来电号码 @Override public void onCallStateChanged(int state, String incomingNumber) { super.onCallStateChanged(state, incomingNumber); System.out.println("来电号码:"+incomingNumber); switch (state) { case TelephonyManager.CALL_STATE_IDLE://空闲 System.out.println("空闲"); break; case TelephonyManager.CALL_STATE_RINGING://响铃 System.out.println("响铃"); break; case TelephonyManager.CALL_STATE_OFFHOOK://通话 System.out.println("通话"); break; default: break; } } } @Override public void onDestroy() { super.onDestroy(); //4. 注销监听 tm.listen(mPhoneStatusListener, PhoneStateListener.LISTEN_NONE); } }
最后,关注【码上加油站】微信公众号后,有疑惑有问题想加油的小伙伴可以码上加入社群,让我们一起码上加油吧!!!