某些Android设备上未发现Chromecast设备

时间:2014-08-23 16:18:45

标签: android discovery

最近,我们在Android应用程序中添加了对Chromecast的支持,但在对各种移动设备(手机和平板电脑)进行的扩展测试中,结果表明,在许多情况下,Flipps应用程序未发现Chromecast。在同一设备上,我们使用最新版本的官方Chromecast SDK演示应用程序进行了测试,该应用程序从https://github.com/googlecast/CastVideos-android下载(主分支,6月30日更新,观察到类似结果 - 未发现Chromecast设备。

简而言之,我们的实现如下 - 我们扩展VideoCastConsumerImpl侦听器并将其添加到在AmsApplication中初始化的VideoCastManager对象(AmsApplication是app Application类):

this.controller = AmsApplication.getApplication().getSharingService().getDeviceController();
try {
   mCastManager = AmsApplication.getCastManager(context);
   mCastConsumer = new VideoCastConsumerImpl() {

        @Override
        public void onFailed(int resourceId, int statusCode) {

        }

        @Override
        public void onConnectionSuspended(int cause) {

        }

        @Override
        public void onConnectivityRecovered() {

  }

        @Override
        public void onCastDeviceDetected(final RouteInfo info) {
            CastDevice dev = new CastDevice(info, mCastManager);
            controller.onDeviceAdded(dev);
        }
   };
   mCastManager.addVideoCastConsumer(mCastConsumer);
   isActive = true;
} catch (Exception ex) {
   Log.e(TAG, "Error initializing cast manager", ex);
} 

不幸的是,即使Chromecast设备可用并在同一WiFi网络中注册,也不会调用任何回调。类似的是演示应用程序的实现和行为。

由于我们实现了基于mDNS协议的自己的设备发现机制(使用JmDNS库,版本3.4.1)。因此,会发现Chromecast设备,并使用反射来调用私有类构造函数来构造类型为CastDevice的对象。 CastDevice对象被设置为已初始化的VideoCastManager对象(方法:public void setDevice(CastDevice device, boolean stopAppOnExit))的设备,该对象随后调用connect()类的GoogleApiClient方法。大约15秒后,返回网络错误。

以上所有错误状态都在所有测试设备上一致地重现。以下是我们能够重现该问题的设备列表(包括操作系统和Google Play服务版本):

设备型号| Android | Google Play服务

HTC One X | 4.2.2 | 5.0.84(1259630-036)

三星Galaxy S4(GT-I9505)| 4.4.2 | 5.0.84(1259630-038)

三星Galaxy S4 mini(GT-I9195)| 4.2.2 | 3.2.25(761454-30)

三星Galaxy TAB3(GT-P5200)| 4.2.2 | 5.0.84(1259630-070)

Motorola XOOM(MZ601)| 3.2 | 5.0.84(1259630-032)

索尼平板电脑S | 4.0.3 | 4.3.25(1117461-032)

Nexus 5 | 4.4.4 | 5.0.89

另一方面,Chromecast已成功发现并在以下设备列表中正常运行:

设备型号| Android | Google Play服务

HTC One | 4.4.2 | 5.0.88(1297476-038)

三星Galaxy S3(GT-I9300)| 4.3 | 5.0.84(1259630-036)

HTC One S | 4.0.4 | 5.0.84(1259630-036)

三星Galaxy 7 TAB2(GT-P3100)| 4.1.2 | 5.0.84(1259630-032)

三星Galaxy S2(GT-9105P)| 4.2.2 | 5.0.84(1259630-034)

三星Galaxy Nexus | 4.2.1 | 5.0.84(1259630-036)

Sony Xperia Z | 4.2.2 | 5.0.84(1259630-038)

Nexus 7(ME370T)| 4.3 | 5.0.84(1259630-030)

1 个答案:

答案 0 :(得分:0)

我遇到类似Galaxy S4(GT-I9505)的问题,一段时间没有安装任何更新。

我的应用无法连接或发现Chromecast,但YouTube客户端却是。

固件更新无法解决,但在更新" AllShare Cast Dongle S / W Update"来自Play商店Chromecast被发现,我从未见过任何问题。我登录Play商店后立即建议更新。