Состояние нестабильности MediaRouteButton в FragmentActivity - PullRequest
0 голосов
/ 30 апреля 2019

Как сохранить состояние MediaRouteButton и избежать отключенного состояния в FragmentActivity

Я написал сервис для обработки всей логики SDK приведения к фрагментным действиям в моем проекте. При создании этого MediaRouteButton включен, и я могу подключиться, но если я отключаюсь от устройства приведения или не выбираю устройство достаточно быстро, кнопка отключается и отображается серым цветом. Это может быть связано с соединением маршрута по умолчанию. Я попытался установить mediaRouteSelector, а также оставить его по умолчанию. Как сохранить состояние MediaRouteButton и оставить его включенным. (Устройство Chromecast присутствует в той же сети, зарегистрировано как устройство dev с идентификатором получателя и т. Д.)

// mButton.routeSelector = mediaRouteSelector
CastButtonFactory.setUpMediaRouteButton(activity, mButton)
if(castContext == null) castContext = CastContext.getSharedInstance(activity.applicationContext)
setUpButton(castContext!!.castState, mButton)

Expected: MediaRouteButton state is kept (disabled avoided)
Actual: The MediaRouteButton is enabled and works for a while then disabled.

1 Ответ

0 голосов
/ 01 мая 2019

Такое поведение было записано в документации для MediaRouteButton:

Когда выбран маршрут по умолчанию или когда выбран текущий Маршрут не соответствует selector, кнопка появится в неактивном состоянии, указывая, что приложение не связано с маршрутом, который он хочет использовать. Нажатие на кнопку открывает MediaRouteChooserDialog чтобы позволить пользователю выбрать маршрут. Если нет подходящих маршрутов селектор, и при активном сканировании невозможно обнаружить соответствующие маршруты, кнопка отключена и не может быть нажата.

Если выбран маршрут не по умолчанию, соответствующий селектору, кнопка появится в активном состоянии, указывая, что приложение связан с маршрутом, который он хочет использовать. Кнопка может также появиться в промежуточном соединительном состоянии, если маршрут находится в процесс подключения к месту назначения, но еще не завершен делать это. В любом случае нажатие на кнопку открывает MediaRouteControllerDialog чтобы позволить пользователю контролировать или отключаться от текущего маршрута.

...