android - 广播接收器在模拟器中工作但不在设备中
问题描述
我正在尝试使用 PHONE_STATE 配置广播接收器。这是我的代码:
<receiver android:name=".IncomingCallReceiver"
android:enabled="true"
android:exported="true"
android:label="BootReceiver">
<intent-filter android:priority="1000">
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
</application>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
班级:
public class IncomingCallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("TAG","ESTAMOS DENTRO!!");
MyPhoneStateListener phoneListener = new MyPhoneStateListener();
TelephonyManager telephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
telephony.listen(phoneListener,PhoneStateListener.LISTEN_CALL_STATE);
}
public class MyPhoneStateListener extends PhoneStateListener{
public void onCallStateChanged(int state, String incomingNumber){
switch (state){
case TelephonyManager.CALL_STATE_IDLE:
Log.d("DEBUG","IDLE");
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
Log.d("DEBUG","OFFHOOK");
break;
case TelephonyManager.CALL_STATE_RINGING:
Log.d("DEBUG","RINGING: " + incomingNumber);
break;
default:
break;
}
}
}
}
这在我的模拟器(牛轧糖)中完美运行,但是当我尝试在我的设备(7)中使用它时,它不起作用,我在 logcat 中看不到任何东西。
我试过优先或没有它。导出/启用和没有它。没有什么。
有任何想法吗??
谢谢
解决方案
现在可以与其他设备一起使用,这将是我的设备的问题。谢谢
推荐阅读
- angular - Angular 2.0.0 的文本编辑器
- flutter - 有没有办法让firebase实时数据库存在系统更快地检测到断开连接?
- bash - 如何在 Linux 的命令中插入单词?
- python - Python正在输出带有字符串引号的json
- excel - 图像控制用户窗体替代
- ios - 列表未在 SwiftUI 中显示来自 API 的数据?
- amazon-web-services - 命名 AWS EC2 安全组
- python-2.7 - 在python2.7中导入jwcrypto时出错
- c# - 使用 ClosedXML.Excel C# 更改列样式
- python - 命令引发异常:AttributeError: 'File' object has no attribute 'to_dict' for Discord bot