要在安卓上监听来电状态,可以使用广播接收器(BroadcastReceiver)来监听来电事件。下面是一个示例代码:
public class PhoneStateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
// 检查是否是来电状态改变的广播
if (action.equals(TelephonyManager.ACTION_PHONE_STATE_CHANGED)) {
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
// 检查来电状态
if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
// 有来电
String phoneNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
Log.d("PhoneStateReceiver", "来电号码:" + phoneNumber);
// 在这里可以执行相关操作,如记录来电日志、弹出来电提醒等
} else if (state.equals(TelephonyManager.EXTRA_STATE_IDLE)) {
// 无来电
Log.d("PhoneStateReceiver", "无来电");
// 在这里可以执行相关操作,如关闭来电提醒等
}
}
}
}
...
PhoneStateReceiver phoneStateReceiver = new PhoneStateReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(TelephonyManager.ACTION_PHONE_STATE_CHANGED);
registerReceiver(phoneStateReceiver, intentFilter);
这样就可以在安卓上监听来电状态了。在示例代码中,当有来电时会打印来电号码,你可以根据需要进行相应的操作。记得在不需要监听来电状态时调用unregisterReceiver(phoneStateReceiver)取消注册广播接收器。
下一篇:安卓监听默认拨号应用程序的通知