以下是代码:
的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被触发。
知道为什么Android 6.0及以上版本会这样吗?