如何在安卓Oreo中运行隐式广播?

8

我已经阅读了其他解决方案,但是由于Android O中的广播限制,我正在创建新问题。

我的应用程序正在使用Google Play音乐应用程序的广播。当用户播放音乐时,它会保存音乐的数据。在清单文件中声明接收器如下:

    <receiver
        android:name=".syncMusic.stock.StockMusicReceiver"
        android:enabled="true"
        android:exported="true"
        tools:ignore="ExportedReceiver">
        <intent-filter>
            <action android:name="com.android.music.playstatechanged"/>
            <action android:name="com.android.music.metachanged"/>
        </intent-filter>
    </receiver>

在O版本之前,它工作得很完美。我已经阅读了 O中的后台执行限制
默认情况下,这些更改只影响目标为Android 8.0(API级别26)或更高版本的应用程序。但是,用户可以从设置屏幕为任何API级别低于26的应用启用这些限制。您可能需要更新您的应用程序以符合新的限制。
当应用程序不在后台运行时,如何使用作业调度程序在Android O中运行播放音乐的广播(与以前的Android版本相同)?

我这里也有同样的问题,我有一个BootupReceiver来启动FCM服务,但这可能不再起作用了。 - JPM
1个回答

0

您可以通过编程方式注册广播接收器。

提示:如果您在 BroadcastReceiver 类中执行此操作,请使用 getApplicationContext().registerReceiver(...),否则 Android 将抛出异常(不允许在 BroadcastReceiver 上下文中执行)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接