我刚刚将我的 Nexus 5 更新到 android 6,到目前为止我的应用程序工作正常,但现在广播接收器无法工作。新版本有什么变化吗?
这是我尝试过的代码,它适用于以前的版本,但不适用于棉花糖 -
安卓清单
<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...");
}
}
Service
Broadcast_receiver broadcast_receiver = new Broadcast_receiver();
IntentFilter filter1 = new IntentFilter();
filter1.addAction("android.provider.Telephony.SMS_RECEIVED");
registerReceiver(broadcast_receiver, filter1);
同样,PHONE_STATE 的广播接收器也无法工作。
您的应用程序的目标 API 级别是 23,即 android M (6.0)。在 android M 中,与用户权限相关的巨大变化。Here http://developer.android.com/about/versions/marshmallow/index.html是一篇很好的文章,解释了这些变化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)