Broadcast Receiver不支持三星较新版本的Android

时间:2016-11-27 21:00:55

标签: android android-studio samsung-mobile

以下是代码:

的AndroidManifest.xml

<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />


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

只是一个简单的&#34; SmsListener&#34;如下:

public class SmsListener extends BroadcastReceiver {


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

    if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
        Bundle bundle = intent.getExtras();   

还设置了在运行时请求权限,并且授予了应用程序所需的权限。

 if(ContextCompat.checkSelfPermission(context, "android.permission.READ_SMS") == PackageManager.PERMISSION_GRANTED) {

我测试了大多数设备(iOS也是如此)它工作正常,但似乎Android 6.0忽略了BroadcastReceiver和&#34; onReceive&#34;没有被触发。

当我从&#34;消息&#34;更改默认消息应用程序时到&#34;环聊&#34;或&#34; Messenger&#34;然后onReceive被触发。

enter image description here

知道为什么Android 6.0及以上版本会这样吗?

0 个答案:

没有答案