Обнаружение устройств Chromecast с помощью API Android MediaRouter

Обнаружение устройств Chromecast с использованием API-интерфейсов Android MediaRouter не работает должным образом с последней библиотекой поддержки mediarouter (версия 19) и сервисами Google Play версии 4.2.43.

Я использую пример приложения Cast Hello Text для этой проблемы. Его можно найти здесь: https://github.com/googlecast/CastHelloText-android.

Устройство Chromecast подключено к телевизору и подключено к той же сети, что и устройство Android (отправитель).

  1. Приложение подходит и находит устройство Chromecast. Я переопределяю некоторые из соответствующих методов MediaRouter.Callback, поэтому вижу вызываемый onRouteAdded().
  2. Позже я отключаю устройство от телевизора. Я ожидаю получить событие onRouteRemoved(). Но этого никогда не происходит.
  3. Приложение по-прежнему отображает значок приведения. При выборе устройства из значка преобразования приложение пытается подключиться к устройству и завершается неудачно. Теперь я получаю события onRouteUnSelected() и onRouteRemoved() и значок приведения исчезает.
  4. При подключении устройства к телевизору и отображении домашнего экрана устройства я ожидаю получить событие onRouteAdded(). Я не получаю это событие даже после ожидания в течение нескольких минут.

Это работало, как и ожидалось, в библиотеке mediarouter версии 17 и в SDK предварительного просмотра Google Cast.

Так что-то изменилось с точки зрения того, когда эти события происходят? Как правильно узнать, когда устройство Chromecast добавляется и когда оно удаляется? Я планирую использовать пользовательский интерфейс с MediaRouter API для отображения значка приведения и списка устройств.

1 ответ

Решение

В последней версии служб Android SDK/Play есть ошибка, которая вызывает поведение, которое вы видите. Это будет исправлено в следующей версии SDK и сервисов Google Play.

Другие вопросы по тегам