我有一个使用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();
}