Уведомление BroadcastReceiver не отправлено для android.media.tv.action.INITIALIZE_PROGRAMS - PullRequest
0 голосов
/ 27 августа 2018

Трансляция, которая должна быть отправлена ​​приложению сразу после установки приложения на ТВ, не принимается.

Я объявил BR в Manifest.xml:

<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 - безуспешно. У кого-нибудь была похожая проблема?

1 Ответ

0 голосов
/ 30 августа 2018

Вы загружаете приложение? INITIALIZE_PROGRAMS отправляется только тогда, когда приложение установлено через магазин.

При боковой загрузке (установка из adb или android studio) вы можете вызвать намерение с помощью:

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

Ответ из пункта 5 в руководстве разработчика Android для создания канала на главном экране: https://developer.android.com/training/tv/discovery/recommendations-channel#creating_a_channel

...