【问题标题】:How to run implicit broadcast in Android Oreo?如何在 Android Oreo 中运行隐式广播?
【发布时间】:2018-02-08 06:16:25
【问题描述】:

我已阅读其他解决方案,但由于 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

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

当应用不在后台运行时,我如何使用 Job scheduler 在 Android O(与之前的 Android 版本一样)中运行播放音乐的广播?

【问题讨论】:

  • 同样的问题,我有一个 BootupReceiver 来启动 FCM 服务,这可能不再起作用了。

标签: android broadcastreceiver android-8.0-oreo


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多