MediaRouter检测的延迟

时间:2016-11-11 17:59:10

标签: android chromecast google-cast

我正在编写一个能够检测DLNA和Chrome设备的Android应用程序。应用程序设计语言不支持在ActionBar上放置强制转换按钮。相反,我需要轮询DLNA和Chrome设备并显示在列表中。

为检测演员设备而编写的代码如下:

mMediaRouteSelector = new MediaRouteSelector.Builder()
            .addControlCategory(CastMediaControlIntent.categoryForCast(CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID))
            .build();


    mMediaRouterCallback = new MyMediaRouterCallback();
    mMediaRouter.addCallback(mMediaRouteSelector, mMediaRouterCallback,
            MediaRouter.CALLBACK_FLAG_PERFORM_ACTIVE_SCAN);

使用上面的代码,我无法检测到Chrome设备。我需要大约10分钟才能检测到网络中的设备。有时需要更多时间。但是在Actionbar中使用CastButton会立即检测到设备。

如何在没有任何延迟的情况下检测Chrome设备?

1 个答案:

答案 0 :(得分:0)

我建议你拨打int,然后依靠回调来保持最新路线的来来去去。可能是out已经发现您的设备,并且根据多种因素,您的回调可能无法收到此类路由的通知。如果您发现mMediaRouter.getRoutes()符合您的要求,那么您需要手动过滤该调用获得的路由(使用相同的选择器和MediaRouter