Android 6上未调用SMS广播接收器

Android 6上未调用SMS广播接收器,android,broadcastreceiver,sms,Android,Broadcastreceiver,Sms,我试图捕获手机上收到的短信,但当手机收到短信时,不会调用“onReceive”方法。这是我的代码: 我知道BroadcastReceiver在标记“application”内的“AndroidManifest.xml”中声明: <receiver android:name=".util.IncomingSmsReceiver" android:exported="true"> <intent-filter android:priority

我试图捕获手机上收到的短信,但当手机收到短信时,不会调用“onReceive”方法。这是我的代码:

我知道BroadcastReceiver在标记“application”内的“AndroidManifest.xml”中声明:

    <receiver android:name=".util.IncomingSmsReceiver"
        android:exported="true">
        <intent-filter android:priority="2147483647">
            <action android:name="android.provider.Telephony.SMS_RECEIVED" />
        </intent-filter>
    </receiver>

我正在用Android 6在模拟器Google Nexus 5上进行测试。当我在emulator中发送sms(假)时,会出现一个通知,好像它接收得非常好,我可以在带来emulator的默认应用程序中使用它。在Android Studio的logcat中,您似乎没有运行方法
onReceive
,也没有运行内部编写的代码。我尝试更改优先级,尝试使用
Android:enabled=“true”
,尝试使用
registerReceiver
,但未使其正常工作。有人知道我是否错过了什么吗?

您是否正在使用“禁用其他应用”标志打开的默认消息应用程序

请看这个:

编辑:

因为您使用的是Android 6,所以应该使用新的权限模型。看看这个:

是的,我已经声明了这些权限:
我有一个通过单击按钮执行的活动,我试图在其中使用
注册表接收程序
我已经阅读了该响应,但我认为我的情况并非如此。我使用干净的仿真器,只安装了我的应用程序,其他一切都来自工厂。@AnderAcosta编辑了我的答案,请检查againWorks!谢谢我将编辑我问题的标题。@AnderAcosta很高兴能提供帮助!由于问题似乎已解决,您可能希望通过单击复选标记来解决(✓) 左边答案旁边的图标。这样做会将问题标记为已回答,也会给你和我一些声誉分数。老兄,你救了我的命…我有小米米5设备,但在接收来自同一设备的短信时,我的广播接收器无法工作。读完你的帖子后,我去了我设备的main消息应用程序设置并禁用了“Mi消息”选项。事实证明,它可以通过Wi-Fi向其他Mi设备发送消息,因此当我向自己发送消息时,它们通过Wi-Fi传播,我相信这就是导致我的广播接收器无法工作的原因。
public class IncomingSmsReceiver extends BroadcastReceiver {

    public static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";

    @Override
    public void onReceive(Context context, Intent intent) {

        Log.i(TAG, "onReceive executed");
        if (intent.getAction().equals(SMS_RECEIVED)) {
           ...
        }
   }
}