如何从移动设备/桌面端检测我的AndroidTV当前是否是Google Cast接收器?
从Google Cast接收器的角度,如何检测当前是谁在使用Google Cast发送器?
如何检测我的Android手机当前是否是Google Cast发送器?
从Google Cast接收器的角度,如何检测当前是谁在使用Google Cast发送器?
如何检测我的Android手机当前是否是Google Cast发送器?
您可以使用Android Media Router API请求所有可用的Cast设备路线。然后您需要连接到每个Cast设备,然后确定应用程序ID甚至是否正在播放媒体。如果您只想知道自己的应用程序是否在运行,则可以通过Media Router请求进行过滤。
只有接收器才知道哪些发送器连接到它。在您自己的自定义接收器中,您可以跟踪自己应用程序的情况。
您可能可以使用Media Router来确定是否存在活动路线。不确定是否能够判断它是否是Cast路线,因为这些路线也可能通往其他设备,如蓝牙扬声器。
补充一下Leon的回答,我们在MediaRouter上设置了一个回调函数,以便在选择我们的Chromecast接收器应用程序时获得回调通知。
val mMediaRouterCallback = object : MediaRouter.Callback() {
override fun onRouteSelected(router: MediaRouter?, route: MediaRouter.RouteInfo?) {
routeInfo = route
}
override // override appropriate methods here!!
}
val mMediaRouteSelector = MediaRouteSelector.Builder()
.addControlCategory(
CastMediaControlIntent
.categoryForCast(BuildConfig.CHROMECAST_RECEIVER_APP_ID)
).build()
MediaRouter.getInstance(context).addCallback(
mMediaRouteSelector, mMediaRouterCallback,
MediaRouter.CALLBACK_FLAG_PERFORM_ACTIVE_SCAN
)
构建选择器以适用于多个应用程序。并且可以更改MediaRouter.CALLBACK_FLAG_PERFORM_ACTIVE_SCAN
以扩大您的扫描范围。