Как получить доступ к значку 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, надеюсь, что она все еще работает; Я не пробовал это в последнее время, так как я использую панель инструментов сейчас.

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