在一个网络上有没有太多的chromecast设备?

时间:2014-11-03 13:11:40

标签: java android chromecast google-cast

我有一个使用CastCompanionLibrary的应用程序,我有一个奇怪的问题。在具有一个chromecast设备的小型网络上,我的应用程序能够检测到它并显示MediaRouterItem。

虽然,我有一个beta测试人员说他们无法检测到他们的任何设备,所以图标永远不会出现在他们身上。来发现它们连接到一个更大的共享网络,并连接了多个chromecast设备。他们表示,他们能够通过YouTube和Localcast等其他应用程序检测所有chromecast设备。这很奇怪,因为这让我相信我可能没有在发现过程中做正确的事情。

不幸的是,我不能让我有一个带有多个chromecast设备的网络来调试这个问题,所以我只是想知道是否有其他人有类似的问题?或者是否有某种方法需要使用我失踪的CastCompanionLibrary调用?

修改

我正在使用已发布的APP_ID,因此我知道它不是白名单问题。

我用于发现的代码由CastCompanionLibrary完成。这是我在调用onCastDeviceDetected()回调后使用的内容:

mCastConsumer = new VideoCastConsumerImpl() {

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

            }

            @Override
            public void onConnectionSuspended(int cause) {
                Log.d(TAG, "onConnectionSuspended() was called with cause: " + cause);
            }

            @Override
            public void onConnectivityRecovered() {
            }

            @Override
            public void onCastDeviceDetected(final MediaRouter.RouteInfo info) {
                if (!MyApplication.isFtuShown(Home.this)) {
                    MyApplication.setFtuShown(Home.this);
                    Log.d(TAG, "Route is visible: " + info);
                    new Handler().postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            if (mediaRouteMenuItem.isVisible()) {
                                Log.d(TAG, "Cast Icon is visible: " + info.getName());
                                //showFtu();
                            }
                        }
                    }, 1000);
                }
            }
        };

MyApplication.class:

public static boolean isFtuShown(Context ctx) {
    SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(ctx);
    return sharedPref.getBoolean(FTU_SHOWN_KEY, false);
}

public static void setFtuShown(Context ctx) {
    SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(ctx);
    sharedPref.edit().putBoolean(FTU_SHOWN_KEY, true).commit();
}

0 个答案:

没有答案