Это реализация, которую я имею.Это работает для меня, я надеюсь, что это работает и для вас
1.- Во-первых, вам нужно добавить MediaRouteButton
<androidx.mediarouter.app.MediaRouteButton
android:id="@+id/home_media_route_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:mediaRouteTypes="user"
android:visibility="visible"/>
2.- Теперь вам просто нужно добавить плавающийстиль кнопки для вашей кнопки
style="@style/Widget.Design.FloatingActionButton"
3. -В качестве последнего шага вам нужно всего лишь настроить MediaRouteButton следующим образом:
CastButtonFactory.setUpMediaRouteButton(this,home_media_route_button)
БОНУС
Если вы хотите, чтобы кнопка отображалась только тогда, когда доступны литые устройства, добавьте этот код в onCreate
метод
private lateinit var castContext: CastContext
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
castContext = CastContext.getSharedInstance(this)
castContext.addCastStateListener{state->
if(state==CastState.NO_DEVICES_AVAILABLE) {
home_media_route_button.visibility = View.GONE
}else{
home_media_route_button.visibility=View.VISIBLE
}
}
if(castContext.castState==CastState.NO_DEVICES_AVAILABLE){
home_media_route_button.visibility = View.GONE
}else{
home_media_route_button.visibility=View.VISIBLE
}
CastButtonFactory.setUpMediaRouteButton(this,home_media_route_button)
}
Дайте мне знать, работает ли она для вас.