2014-02-14 52 views
3

我试图在Android中以编程方式获取投射设备的列表,而无需使用SDK中的MediaRouteActionProvider按钮。无法获取网络上的投射设备列表

我创建了一个MediaRouter和MediaRouteSelector像这样:

mMediaRouter = MediaRouter.getInstance(this); 
mMediaRouteSelector = new MediaRouteSelector.Builder() 
    .addControlCategory(CastMediaControlIntent.CATEGORY_CAST) 
    .build(); 

然后我开始发现:

mMediaRouter.addCallback(mMediaRouteSelector, mMediaRouterCallback, 
    MediaRouter.CALLBACK_FLAG_PERFORM_ACTIVE_SCAN); 

在onProviderAdded回调方法,我似乎只得到3个供应商:安卓,融为一体。 google.android.youtube和com.google.android.gms。只有'android'提供了一个名为'Phone'的路由。

为什么我的chromecast设备不显示?其他应用程序可以看到它,所以我应该有连接。

+0

我在同一条船上。 YouTube可以投射视频,但我无法从我自己的应用中进行投放。 – joaomgcd

回答

1

好了,什么工作对我来说是这样的:

添加onRouteAdded方法上的媒体路由器回调并寻找与描述的设备:“Chromecast的”

+0

这可行。事实证明,你只需要听onRouteAdded回调,而不是onProviderAdded。 – rgrasell