广播接收器不为INITIALIZE_PROGRAMS操作工作



我正在开发一个Android TV应用程序,我正在设置一个广播接收器,以便在用户安装应用程序时运行一个工作类。在Google文档(主题6)之后,它展示了如何在manifest文件中使用操作"android.media.tv.action. initialize_program "添加接收器。我这样做了,还创建了一个简单的广播接收器类,如下所示:

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甚至没有被调用。

我错过了什么吗?

谢谢!

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

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

如果您发现自己遇到了同样的问题,请确保检查您的构建。

最新更新