【问题标题】:Detect usage of Google Cast检测 Google Cast 的使用情况
【发布时间】:2016-05-22 02:53:17
【问题描述】:

如何检测我的 AndroidTV 当前是否是来自移动/桌面的 Google Cast 接收器

如何从 Google Cast Receiver 的角度检测当前是谁是 Google Cast 发送者

如何检测我的 Android 手机当前是否是 Google Cast 发件人

【问题讨论】:

  • 如果可能,请解释为什么您需要这些信息,您的用例是什么?
  • 我想统计一下android tv是怎么用的,android手机是用什么做遥控器的。
  • 要添加到这个,我想要这个功能,运行一个观察者应用程序,当它检测到演员已经开始时通过 Harmony 打开我的电视/扬声器

标签: android chromecast google-cast android-tv


【解决方案1】:
  1. 您可以使用 Android 媒体路由器 API 请求所有可用路由到 Cast 设备。然后,您必须连接到每个 Cast 设备,然后您才能确定应用程序 ID 或是否正在播放媒体。如果您只想知道您自己的应用程序是否正在运行,那么只需按此过滤媒体路由器请求。

  2. 只有接收方会知道哪些发送方连接到它。在您自己的自定义接收器中,您可以为自己的应用跟踪它。

  3. 您或许可以使用媒体路由器来确定是否有活动路由。不确定您是否能够判断它是否是 Cast 路由,因为这些路由也可能会发送到其他设备,例如蓝牙扬声器。

【讨论】:

【解决方案2】:

要添加到 Leons 的答案,我们在 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 以扩大您的扫描范围。

【讨论】:

  • 不就是sender选择要投到哪个receiver的API吗? OP想要反对一个。他是接收者,想知道发送者连接到的天气或发送者是什么。
  • 我认为如果这就是您的意思,可以自动连接到接收器。接收器软件完全不同,看这里:developers.google.com/cast/docs/web_receiver
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-21
  • 1970-01-01
  • 2011-10-27
  • 1970-01-01
  • 1970-01-01
  • 2019-10-03
相关资源
最近更新 更多