Android应用程序自动投射而无需用户交互(CastCompanionLibrary)

时间:2017-01-22 07:53:37

标签: android chromecast google-cast castcompanionlibrary

我有一个使用CastCompanionLibrary v2.9.1的Android应用,修改为使用play-services-cast:10.0.1(只是对gradle依赖项的简单更改)。

简短版本:该应用正在尝试自动连接到ChromeCast设备,无需用户互动。

长版:

由于更新了CCL库以使用play services 10.0.1,我已经有几位用户提到应用会在没有用户互动的情况下自动连接/投射到ChromeCast。

有些用户说他们没有使用该应用,然后他们连接到WiFi,应用会自动尝试投射。其他人说他们正在使用该应用程序,他们没有按下ChromeCast按钮,应用程序开始投射。

-

我无法确定在哪里寻找ChromeCast API的潜在变化,这可能会解释正在发生的事情。我还不确定此问题是仅针对我的应用,还是针对许多其他支持ChromeCast的应用。最后,我无法在自己的ChromeCast设备上重现此问题。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:2)

我以前没见过或听过这个,所以这里有一些指示供你进一步调查,看看原因是什么。 CCL有一个名为ReconnectionService的(粘性)服务,负责在您丢失wifi并稍后将其恢复时执行重新连接尝试。您提到的wifi方案类似于此,所以我建议从那里开始。为了仅在有意义时重新连接,它获取正在播放的内容的时间长度,并且仅在该段时间内进行此类尝试;即如果你开始播放1小时的内容,然后你将手机放在桌面上并在2小时后拿起它,它会注意到它睡前的最后一部电影是1小时所以它不会赢尝试重新连接(请参阅同一课程中的handleTermination())。对于没有明确内容持续时间的直播,CCL使用默认值2小时但允许应用通过调用VideoCastManager.setLiveStreamDuration(duration_in_seconds)方法对其进行修改。最后,整个重新连接依赖于几个因素:它保存最后一个连接的route-id以及会话ID。因此,如果需要,您可以清除其中任何一个,然后它不会尝试重新连接该特定会话(如果您想要保持一些重新连接而禁用其他一些会话)。希望这些有助于解决问题。

答案 1 :(得分:0)

因此,事实证明Android支持库25.1.0中存在导致此问题的错误。

https://code.google.com/p/google-cast-sdk/issues/detail?id=1105

现在标记为'内部修复'。

还相关: https://code.google.com/p/android/issues/detail?id=232326