FragmentActivity中的MediaRouteButton状态不稳定

时间:2019-04-30 16:46:10

标签: android kotlin sdk chromecast

如何在FragmentActivity上保持MediaRouteButton状态并避免禁用状态

我已经编写了一项服务来处理项目中片段活动的所有强制性sdk逻辑。创建后,即表示启用了MediaRouteButton并可以连接,但是如果我与投射设备断开连接或没有足够快地选择设备,则该按钮将被禁用并显示为灰色。它可能与默认路由连接有关。我尝试设置mediaRouteSelector并将其保留为默认值。如何保持MediaRouteButton状态并保持启用状态。 (Chromecast设备存在于同一网络中,并使用接收者ID等注册为开发设备)

// mButton.routeSelector = mediaRouteSelector
CastButtonFactory.setUpMediaRouteButton(activity, mButton)
if(castContext == null) castContext = CastContext.getSharedInstance(activity.applicationContext)
setUpButton(castContext!!.castState, mButton)

Expected: MediaRouteButton state is kept (disabled avoided)
Actual: The MediaRouteButton is enabled and works for a while then disabled.

1 个答案:

答案 0 :(得分:0)

此行为写在documentation for MediaRouteButton中:

  

选择默认路由或当前选择时   路线与   selector,   该按钮将以无效状态显示,表明   应用程序未连接到它想要的那种路由   采用。点击按钮打开一个   MediaRouteChooserDialog   允许用户选择路线。如果没有非默认路由匹配   选择器,并且主动扫描不可能发现任何选择器   匹配路线,则该按钮将被禁用并且无法单击。

     

当选择了与选择器匹配的非默认路由时,   按钮将以活动状态出现,表明该应用程序   连接到它要使用的那种路由。按钮   如果路由位于,则也可能会出现中间连接状态   连接到目的地但尚未完成的过程   这样做。无论哪种情况,单击按钮都会打开一个   MediaRouteControllerDialog   允许用户控制或断开当前路线。