gpt4 book ai didi

android - 按需获取可用的 chromecast 列表

转载 作者:太空狗 更新时间:2023-10-29 14:13:39 24 4
gpt4 key购买 nike

好的,所以我想弄清楚如何获取可用 chromecast 设备的最新列表,我这样做是为了让我的应用程序可以检查 chromecast 何时未使用,然后打开我的接收器应用程序。

我在下面的代码中遇到了一些意外行为:

public class MainActivity extends Activity {

...

@Override
public void onCreate(Bundle savedInstanceState) {

...

mMediaRouterCallback = new MyMediaRouterCallback();

mMediaRouter = MediaRouter.getInstance(context);

mMediaRouteSelector = new MediaRouteSelector.Builder()
.addControlCategory(CastMediaControlIntent.categoryForCast(context.getString(R.string.app_id)))
.build();

mMediaRouter.addCallback(mMediaRouteSelector, mMediaRouterCallback,

MediaRouter.CALLBACK_FLAG_PERFORM_ACTIVE_SCAN);
}

这会向 MediaRouter 添加一个 MediaRouter 回调。我选择使用主动扫描标志。

private class MyMediaRouterCallback extends MediaRouter.Callback {

...

@Override
public void onRouteAdded(MediaRouter router, MediaRouter.RouteInfo info) {

Log.d(TAG, "Description 1 " + info.getDescription());

mSelectedDevice = CastDevice.getFromBundle(info.getExtras());

Log.d(TAG, "Description 2 " + mSelectedDevice.toString());

if(info.getDescription().equals("Chromecast")) {
// code to launch chromecast receiver app here.
}

}
}

我对 MediaRouter.Callback 的实现覆盖了 onRouteAdded,它只是打印有关它找到的设备的一些信息 Description 1 描述了设备正在使用的接收器应用程序,description 2 给出了它的名称。

然而,当最初运行此代码时,发现同一设备打印两次:

07-05 21:01:12.270: D/MainActivity(9730): Description 1 Casting HelloText
07-05 21:01:12.280: D/MainActivity(9730): Description 2 "Downstairs"
07-05 21:01:12.280: D/MainActivity(9730): Description 1 Casting HelloText
07-05 21:01:12.280: D/MainActivity(9730): Description 2 "Downstairs"

然后定期调用 onRouteAdded 回调,有时只列出设备一次,有时列出设备两次。然而,我的理解是,只有在添加新路由时才应调用此回调。

我想根据命令查找所有可用设备,而不是在我无法控制的随机时间间隔内,我需要做什么?我找不到似乎适合这种情况的回调(例如每当设备更新/更改时),也找不到不使用回调就列出它们的方法,所以我有点卡住了。

(我一直在基于此处找到的 HelloText-Android 示例进行这些测试 https://github.com/googlecast/CastHelloText-android,而且我只是在几天前才开始这个(我的第一个 android 项目),所以如果我遗漏了一些非常明显的东西,我深表歉意)

提前致谢。

最佳答案

Call getRoutes()在您想要的时间点获取已知路线列表。遍历它们。 Call matchesSelector() on each过滤出与您所需的控制类别匹配的那些。

关于android - 按需获取可用的 chromecast 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24590205/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com