广播接收器不适用于 INITIALIZE_PROGRAMS 操作

Broadcast receiver not working for INITIALIZE_PROGRAMS action

我正在开发一个 Android 电视应用程序,我正在设置广播接收器以在用户安装该应用程序时 运行 一部作品 class。 在第 6 个主题 Google documentation 之后,它展示了如何使用操作“android.media.tv.action.INITIALIZE_PROGRAMS”在清单文件中添加接收器。 我这样做了,还创建了一个简单的广播接收器 class,如下所示:

class TvLauncherReceiver : BroadcastReceiver() {

override fun onReceive(context: Context, intent: Intent) {
    Log.d("print", "onReceive ${intent.action}")
} 

如文档中所述,我必须 运行 以下 adb 命令来触发广播操作,因为该应用不是从 Play 商店安装的:

adb shell am broadcast -a android.media.tv.action.INITIALIZE_PROGRAMS -n \
your.package.name/.YourReceiverName

我已经完成了所有这些,终端显示广播已完成,但没有任何反应。添加了一个断点,甚至没有调用 onReceive。

我是不是遗漏了什么?

谢谢!

我发现一切都设置好了。问题是:我正在处理的项目在 build.gradle 文件中设置了 applicationId 后缀。因此,正确的adb命令应该是:

adb shell am broadcast -a android.media.tv.action.INITIALIZE_PROGRAMS -n \
your.package.name.applicationIdSuffix/.YourReceiverName

如果您发现自己遇到同样的问题,请确保检查您的 build.gradle 文件中的 applicationIdSuffix 变量。