Media Route Selector に MiraCast デバイスと Chromecast デバイスの両方を表示させようとしています。私は Chromecast レシーバー アプリを持っており、Android のプレゼンテーション API も利用しているため、理想的には、ユーザーはメディア ルーターのボタンをクリックするだけで、何も考えずにデバイスを選択する必要があります。これを達成するためにこのガイド ( https://developer.android.com/guide/topics/media/mediarouter.html#selector ) に従っていました。写真では、ルート セレクターで利用可能な Chromecast とワイヤレス ディスプレイの両方を示しています。ただし、コントロール カテゴリを追加した後も、Chromecast しか表示されません。
関連するコードは次のとおりです。
mMediaRouteSelector = new MediaRouteSelector.Builder()
.addControlCategory(MediaControlIntent.CATEGORY_LIVE_AUDIO)
.addControlCategory(MediaControlIntent.CATEGORY_LIVE_VIDEO)
.addControlCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK)
.addControlCategory(CastMediaControlIntent.categoryForCast(CAST_APP_ID))
.build();
...
mMediaRouter.addCallback(mMediaRouteSelector, mMediaRouterCallback,
MediaRouter.CALLBACK_FLAG_REQUEST_DISCOVERY);
コールバック フラグも変更しようとしましたが、変更は見られませんでした。
編集:
最終的に、ルーター ボタン用のカスタム ダイアログ ファクトリを作成し、ユーザーをワイヤレス ディスプレイ設定に送るボタンを含む別のレイアウトを使用しました。私が探していた解決策ではありませんが、私が実際にやろうとしていたことはサポートされていないようです。