我正在开发一个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
如果您发现自己遇到了同样的问题,请确保检查您的构建。