【问题标题】:SMS Broadcast Receiver not called on Android 6在 Android 6 上未调用 SMS 广播接收器
【发布时间】:2015-10-27 17:14:52
【问题描述】:

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

我已经在 'AndroidManifest.xml' 中的标签 'application' 中声明了 BroadcastReceiver:

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

这是 IncomingSmsReceiver.java

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)) {
           ...
        }
   }
}

我正在使用 Android 6 的模拟器 Google Nexus 5 上进行测试。当我在模拟器中发送一条短信(假的)时,会出现一条通知,就好像它收到了一样好,我可以在默认应用程序中使用它带来模拟器。在Android Studio的logcat中没有出现你运行onReceive的方法,或者里面写的代码。我试过改变优先级,我试过用android:enabled="true",我试过用@987654325 @我还没有让它工作。有谁知道我是否错过了什么?

【问题讨论】:

  • 是的,我已经声明了这些权限:&lt;uses-permission android:name="android.permission.RECEIVE_SMS" /&gt; &lt;uses-permission android:name="android.permission.WRITE_SMS"/&gt; &lt;uses-permission android:name="android.permission.READ_SMS" /&gt;
  • 我有一个通过单击按钮执行的活动,在其中我尝试使用registerReceiver

标签: android broadcastreceiver sms


【解决方案1】:

您是否使用带有“禁用其他应用程序”标志的默认消息应用程序?

请看这个:

"android.provider.Telephony.SMS_RECEIVED" not working on my device (HTC Wildfire) - how to debug?

编辑:

由于您使用的是 Android 6,因此您应该使用新的权限模型。看一下这个: http://developer.android.com/training/permissions/requesting.html

【讨论】:

  • 我已经阅读了该回复,但我认为这不是我的情况。我使用一个干净的模拟器,只安装了我的应用程序,其他一切都来自工厂。
  • @AnderAcosta 编辑了我的答案,请再次查看
  • 有效!谢谢!我要编辑我的问题的标题。
  • @AnderAcosta 很高兴能提供帮助!由于问题似乎已解决,您可能希望通过单击左侧答案旁边的复选标记 (✓) 图标来mark one of the answers as accepted。这样做会将问题标记为已回答,并且还会奖励你和我一些声望点。
  • 老兄,你救了我的命……我有小米米 5 设备,但在接收我从同一设备发送的短信时,我的广播接收器无法工作。阅读您的帖子后,我去了我设备的主要消息应用程序设置并禁用了“Mi Message”选项。事实证明,它可以通过 Wi-Fi 向其他 Mi 设备发送消息,所以当我向自己发送消息时,它们通过 Wi-Fi 传输,我相信这就是导致我的 BroadcastReceiver 无法工作的原因。
猜你喜欢
  • 1970-01-01
  • 2017-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-31
  • 1970-01-01
相关资源
最近更新 更多