找到媒体路由,但未显示媒体路由按钮

Posted

技术标签:

【中文标题】找到媒体路由,但未显示媒体路由按钮【英文标题】:Media Route found, but no Media Route button is shown 【发布时间】:2015-02-04 16:34:34 【问题描述】:

我正在开发一个 Chromecast android Sender 应用程序,我已经到了需要测试不同接收器的地步。

我注册了新的接收者并获得了新 ID。我将此添加到我的 Android 项目中,注释掉旧的 Id(在 strings.xml 文件中)。

我在测试手机上以调试模式启动了我的应用。

我在 logcat 中得到以下信息:

02-04 16:27:49.968 1532-1532/com.mydomain.app I/MediaRouter:找到默认路由:MediaRouter.RouteInfo uniqueId=android/.support.v7.media.SystemMediaRouteProvider:DEFAULT_ROUTE, name=System ,description=null,enabled=true,connecting=false,playbackType=0,playbackStream=3,volumeHandling=1,volume=14,volumeMax=15,presentationDisplayId=-1,extras=null,providerPackageName=android

但操作栏中没有显示投射图标。

在我进行此更改之前,图标显示没有问题。

改回 ID(删除新 ID 并取消注释旧 ID)会使图标再次出现。

设备运行的是 Android 4.0.4

【问题讨论】:

【参考方案1】:

我在删除 strings.xml 文件中的项目时遇到了很多问题。我发现最好的方法是首先将新字符串添加到文件中,重建,然后从文件中删除旧字符串。我认为引用会以某种方式“卡住”,而重建通常会解决这个问题。虽然有时我发现我也必须重新启动 Android Studio。

【讨论】:

进行了重建、清理甚至重新启动了 Android Studio。到目前为止没有运气。 是的,从该文件中删除这些字符串非常棘手。我通常最终只是将它们留在那里并使用新键来引用新值。 我重命名了字符串名称,并在我的代码中替换了它。依然没有。似乎该应用程序仅对媒体路由进行了一次检查(找到显然是手机本身的默认路由),然后什么也没做……很确定当它使用旧 ID 时,它会每隔一段时间扫描一次? 所以,新的字符串名称标识符。放回旧的应用程序ID,投射图标出现。什么鬼?! 只是为了确认您已完成以下操作:保留旧键值不变,添加新键值而不注释任何内容(并且不复制/粘贴旧键值),替换参考你的代码,然后重建项目,对吗?如果这不起作用,我会说问题很可能是其他问题。【参考方案2】:

所以,事实证明,我的应用程序或接收者 ID 没有任何问题。

虽然我能看到旧 ID 的设备,但看不到新 ID,我真的很困惑。

Chromecast 被列入开发白名单,并且应用程序已注册(获得 ID 的唯一方法!)

我可以毫无问题地使用旧 ID(和其他应用程序)找到并投射到 Chromecast。

出于某种原因,我决定重新启动 Chromecast(不需要,它在很久以前就被列入了白名单,而我过去不必这样做)

重启后,哎呀!我的新接收者 ID 有效,并且投射图标显示在我的应用中。

所以,这里肯定发生了一些可疑的事情。

【讨论】:

【参考方案3】:

那是默认路由,基本上是指移动设备本身。您网络上的任何投射设备都没有为您的应用 ID 注册,因此除了默认路由外什么都不会显示,因此投射按钮是隐藏的。

【讨论】:

在演员控制台中,我添加了新应用程序。没有将设备绑定到应用程序的选项。较旧的应用程序 ID 有效。我的 CC 设备已列入白名单。所以它应该会出现。 澄清一下,我所做的一切都将应用程序 ID 更改为一个新的、未发布的应用程序(与旧应用程序 ID 相同)。你有没有读过旧 ID 可以正常工作的事实? 另外,我刚刚改回旧 ID,我得到的 MediaRouter 的唯一日志记录与我的问题相同。但是,该图标是可见的,并且列出了一个 CC。所以你对默认路由是电话的解释是没有意义的! 在我看来,您不仅不了解演员表的发现,而且在提供帮助时也拒绝接受。您在原始帖子中发布的日志提到了默认路由,如果这是发现的唯一路由,则不会显示投射图标。你是在质疑我所说的“默认路由”是电话吗???期望新的应用程序 ID 应该工作,因为旧的应用程序 ID 工作也是完全错误的。无论如何,祝你的问题好运。 为什么旧的 ID 可以工作而不是新的?!我是说这没有意义,因为在使用旧的有效 ID 时,尽管实际上有一条可用的路线(电话除外!),但仍会吐出相同的日志消息。

以上是关于找到媒体路由,但未显示媒体路由按钮的主要内容,如果未能解决你的问题,请参考以下文章

处理屏幕旋转和媒体路由按钮以及现有会话的正确方法是啥?

手机想看rtsp流媒体视频,路由器端口映射该如何设置

Laravel 5.6 '/' 找到路由但未找到其他路由 AWS EC2

React 路由器更改 url 但未更新上下文

SonataAdmin 子管理路由在调试中可见但未找到

ReactJS 中的路由。显示 URL 但未呈现组件