【发布时间】:2021-06-25 21:09:35
【问题描述】:
我每次都使用Broadcast Receiver 触发incoming messages。无论应用程序是否关闭,它在Android O 中都能正常工作。但是在Android P 中,它只有在应用程序处于活动状态并且应用程序关闭时才有效。无论应用程序是否关闭或不在Android P 中,它都应该始终有效。我关注了link 和许多其他人,但问题仍然存在。
清单中的接收方注册
<receiver
android:name=".Broadcast.SmsListener"
android:enabled="true"
android:exported="true"
android:permission="android.permission.BROADCAST_SMS">
<intent-filter android:priority="999">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
广播接收器类
public class SmsListener extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("Resulted12", "Into onReceive()");
context.startService(new Intent(context, BackgroundService.class));
}
}
还有什么我错过的吗?
【问题讨论】:
-
1.我的应用程序不是默认的。 2. 我正在做一些事情,我可以确定 BR 是否触发。 3.是的,我在模拟器和真实设备上都对其进行了测试。在 android O 上运行良好,但在 android p 中却不行。
-
移除 SMS_DELIVER
后,无论应用是否处于运行状态,BR 都会在新消息到达 Android P 时触发。 -
我在问一个问题。
-
您能说出问题所在吗?我应该做哪些改变?
-
@Mike M 我编辑了这个问题。现在你可以通过触发 BR 看到我想要做什么了。
标签: android background broadcastreceiver