特定の条件のためにキャスト機能を有効にしたいので、onCreateにキャストロジックを必要としません。onCreateメソッドの外部でCastContextを初期化する方法
private void setupCast(String appId) {
if (appId != null) {
Log.d(TAG, "Setting up Cast...");
setupCastListener();
CastOptionsProvider.setAppId(appId);
mCastContext = CastContext.getSharedInstance(_movieActivityContext);
mCastContext.registerLifecycleCallbacksBeforeIceCreamSandwich(this, _savedInstanceState);
mCastSession = mCastContext.getSessionManager().getCurrentCastSession();
mCastContext.getSessionManager().addSessionManagerListener(
mSessionManagerListener, CastSession.class);
mediaRouteMenuItem = CastButtonFactory.setUpMediaRouteButton(getApplicationContext(), _menuForChromecastButton, R.id.media_route_menu_item);
}
}
アプリケーションの受信機IDがHTTP呼び出しを通じて渡されるとのAppIDがnullの場合は、キャストを開始していない:私は、次のコードを持っているsetupCastメソッドを持っています。問題は、このようにmCastContextを初期化するときにキャストボタンが表示されないことです。
私だけ移動する場合は、:私のonCreateメソッドに
mCastContext = CastContext.getSharedInstance(_movieActivityContext);
をし、それは方法他のすべてを維持し、キャストボタンが表示されます。