Как получить доступ к значку Chromecast программно
Я пытаюсь получить ссылку на MediaRouteButton, который является значком приведения, и я все время получаю нулевое значение. Просто хотел посмотреть, знает ли кто-нибудь, как получить ссылку на эту кнопку. Я использую onGlobalLayoutListener для получения уведомлений.
1 ответ
Если вы используете CCL, вы легко сможете использовать ShowCaseView; взгляните на приложение CastVideos-android и посмотрите, как оно работает, в основном вы можете использовать обратный вызов onCastDeviceDetected()
чтобы получить уведомление, когда появится кнопка приведения, а затем сделать что-то вроде:
Menu menu = mToolbar.getMenu();
View view = menu.findItem(R.id.media_route_menu_item).getActionView();
if (view != null && view instanceof MediaRouteButton) {
new ShowcaseView.Builder(this)
.setTarget(new ViewTarget(view))
.setContentTitle(R.string.touch_to_cast)
.build();
}
Это предполагает, что у вас есть панель инструментов.
РЕДАКТИРОВАТЬ: Если у вас есть ActionBar, попробуйте следующее:
new ShowcaseView.Builder(this)
.setTarget(new ActionViewTarget(this, ActionViewTarget.Type.MEDIA_ROUTE_BUTTON))
.setContentTitle(R.string.touch_to_cast)
.build();
В какой-то момент я представил патч для проекта ShowCaseView, чтобы покрыть кнопку MediaRoute, надеюсь, что она все еще работает; Я не пробовал это в последнее время, так как я использую панель инструментов сейчас.