广播接收器不在的Andr​​oid 6.0棉花糖工作 [英] Broadcast Receivers not working in Android 6.0 Marshmallow

查看:215
本文介绍了广播接收器不在的Andr​​oid 6.0棉花糖工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚刚更新了我的Nexus 5到Android 6,到现在为止我的应用程序工作正常,但现在的广播接收器不工作。一些已经在新版本中改变了吗?
这里是code我想,正在对previous版本,但不是在棉花糖 -

I just updated my Nexus 5 to android 6, until now my app was working fine, but now the broadcast receivers are not working. Has something changed in the new version? Here is the code I tried that was working on previous versions but not in marshmallow -

Android清单
    

    <intent-filter >
        <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
    </intent-filter>
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
<uses-permission android:name="android.permission.READ_SMS" ></uses-permission>

广播接收器

public String TAG ="someClass";
private static String ACTION_SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
public void onReceive(Context context, Intent intent) {
    String action = intent.getAction();
    if (action.equalsIgnoreCase(ACTION_SMS_RECEIVED)) {
        Log.d(TAG, "Received...");
    }
}

服务

Broadcast_receiver broadcast_receiver = new Broadcast_receiver();
IntentFilter filter1 = new IntentFilter();
filter1.addAction("android.provider.Telephony.SMS_RECEIVED");
registerReceiver(broadcast_receiver, filter1);

同样,对于PHONE_STATE广播接收器也不能正常工作。

Similarly the broadcast receiver for PHONE_STATE is also not working.

推荐答案

您的应用程序的目标API级别为23,也就是Android的M(6.0)。在版本的Andr​​oid M有与用户的权限了巨大的变化。
这里是很好的文章,解释的变化。

Your app's target API level is 23, that is android M (6.0). In android M there are huge changes related to user-permissions. Here is nice article explaining the changes.

这篇关于广播接收器不在的Andr​​oid 6.0棉花糖工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆