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

时间:2018-02-08 06:16:26

标签: android broadcastreceiver android-8.0-oreo

我已阅读其他解决方案,但由于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之前完美无缺。我已阅读Background Execution limits in O

  

默认情况下,这些更改仅会影响针对Android 8.0(API级别26)或更高级别的应用。但是,用户可以从“设置”屏幕为任何应用启用这些限制,即使该应用针对的API级别低于26.您可能需要更新您的应用以符合新的限制。

当app未在后台运行时,如何使用Job Scheduler在Android O(如以前的Android版本)中播放播放音乐的广播?

1 个答案:

答案 0 :(得分:0)

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

提示:如果从BroadcastReceiver类中执行此操作,请使用getApplicationContext()。registerReceiver(...),否则Android会引发Exception(不允许从BroadcastReceiver上下文中进行)