首页 > 解决方案 > 广播接收器在模拟器中工作但不在设备中

问题描述

我正在尝试使用 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 中看不到任何东西。

我试过优先或没有它。导出/启用和没有它。没有什么。

有任何想法吗??

谢谢

标签: androidandroid-intent

解决方案


现在可以与其他设备一起使用,这将是我的设备的问题。谢谢


推荐阅读