未针对android.media.tv.action.INITIALIZE_PROGRAMS发送BroadcastReceiver通知

时间:2018-08-27 09:23:49

标签: android broadcastreceiver android-tv

没有收到应在电视上安装应用程序后立即发送到应用程序的广播。

我在Manifest.xml中声明了BR:

<receiver
   android:name=".RunOnInstallReceiver"
   android:exported="true">
   <intent-filter>
     <action android:name="android.media.tv.action.INITIALIZE_PROGRAMS" />
     <category android:name="android.intent.category.DEFAULT" />
   </intent-filter>
</receiver>

我也宣布:

<uses-feature
    android:name="android.software.leanback"
    android:required="true" />

RunOnInstallReceiver类非常简单:

public class RunOnInstallReceiver extends BroadcastReceiver {
  @Override
  public void onReceive(Context context, Intent intent) {
     Log.v("RAMPS", "Broadcast received");
  }
}

我尝试使用nVidia Shield和Mi Box 3-没有成功。有人有类似的问题吗?

2 个答案:

答案 0 :(得分:1)

您是否正在加载应用程序? INITIALIZE_PROGRAMS仅在通过商店安装应用程序时发送。

在侧面加载(从adb或android studio安装)时,您可以通过以下方式触发意图:

adb shell am broadcast -a android.media.tv.action.INITIALIZE_PROGRAMS -n com.your.app.package/.YourReceiver

答案来自Android开发人员指南中的项目符号#5,用于在主屏幕上创建频道:https://developer.android.com/training/tv/discovery/recommendations-channel#creating_a_channel

答案 1 :(得分:0)

就我而言,如果您使用 product flavor,您应该通过以下方式触发:

adb shell am broadcast -a android.media.tv.action.INITIALIZE_PROGRAMS -n X/Y

X 是您的应用程序 ID。 Y 是项目中广播接收文件的链接。

示例您使用构建变体暂存构建您的应用程序,并且触发器是

adb shell am broadcast -a android.media.tv.action.INITIALIZE_PROGRAMS -n com.google.android.staging/com.google.android.tvhomescreenchannels.RunOnInstallReceiver

这是ApplicationId: enter image description here

这是路径 RunOnInstallReceiver: enter image description here