广播接收器不在的Android 6.0棉花糖工作 [英] Broadcast Receivers not working in Android 6.0 Marshmallow
问题描述
我刚刚更新了我的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)。在版本的Android 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.
这篇关于广播接收器不在的Android 6.0棉花糖工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!