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

标签 android broadcastreceiver android-8.0-oreo

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

我的应用正在播放 Google Play 音乐应用。当用户播放音乐时,它会保存音乐的数据。 manifest文件中receiver声明如下:

    <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 .

By default, these changes only affect apps that target Android 8.0 (API level 26) or higher. However, users can enable these restrictions for any app from the Settings screen, even if the app targets an API level lower than 26. You may need to update your app to comply with the new limitations.

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

最佳答案

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

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

关于android - 如何在 Android Oreo 中运行隐式广播?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48678799/

相关文章:

javascript - 如何在 React-Native/Metro 中调试 "Unexpected token ' .'"?

android - 如何在Android中显示webp动画

android - 尽管所有消息都从服务器成功发送,但某些设备未收到 GCM 推送

java - Apk 未安装在 Oreo 上

android - 前台 android 通知未显示(奥利奥)

android - 更新处于 KIOSK 模式的托管 Google Play 应用

android - AWS 移动开发工具包库会因为 Amplify 而消失吗?

android - SecurityException : Permission Denial: not allowed to send broadcast android. intent.action.BATTERY_CHANGED

android - 调试 android.intent.action.BOOT_COMPLETED

android - TaskStackBuilder.addParentStack() 和 TaskStackBuilder.addNextIntent() 有什么不同?