监听电话状态的模板代码
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);
}
}
最后,关注【码上加油站】微信公众号后,有疑惑有问题想加油的小伙伴可以码上加入社群,让我们一起码上加油吧!!!
浙公网安备 33010602011771号