应用程序没有找到chromecast

时间:2014-04-03 16:17:20

标签: android chromecast

我的设备突然停止找到我正在测试的Chromecast。我以为这是我改变的一些代码,所以我决定做一个找到媒体路由的简单实现。此实现仅适用于我的4.0.4 Toshiba Thrive,但不适用于任何其他设备。我以为是我的网络,所以我重置路由器,当这不起作用我买了一个新的路由器,但也失败了。我的同事已经测试了apk,它可以在不同网络上的设备上使用不同的chromecast。我出厂时重置了我的chromecast并验证我的所有设备都使用最新版本的Google Play服务。

public class CastTestActivity extends FragmentActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_cast_test);

    MediaRouter mediaRouter = MediaRouter.getInstance(this);
    MediaRouteSelector mediaRouteSelector = new MediaRouteSelector.Builder().addControlCategory(CastMediaControlIntent.categoryForCast("XXXXXXXX")).build();

    mediaRouter.addCallback(mediaRouteSelector, new MediaRouter.Callback() {

        @Override
        public void onRouteAdded(MediaRouter router, MediaRouter.RouteInfo route) {
            super.onRouteAdded(router, route);
            Log.d("ROUTE_ADDED", String.valueOf(route));
        }

        @Override
        public void onRouteRemoved(MediaRouter router, MediaRouter.RouteInfo route) {
            super.onRouteRemoved(router, route);
            Log.d("ROUTE_REMOVED", String.valueOf(route));
        }
        @Override
        public void onRouteSelected(MediaRouter router, MediaRouter.RouteInfo route) {
            super.onRouteSelected(router, route);
            Log.d("ROUTE_SELECTED", String.valueOf(route));

        }

        @Override
        public void onRouteUnselected(MediaRouter router, MediaRouter.RouteInfo route) {
            super.onRouteUnselected(router, route);
            Log.d("ROUTE_UNSELECTED", String.valueOf(route));
        }


        @Override
        public void onRouteChanged(MediaRouter router, MediaRouter.RouteInfo route) {
            super.onRouteChanged(router, route);
            Log.d("ROUTE_CHANGED", String.valueOf(route));
        }

        @Override
        public void onRouteVolumeChanged(MediaRouter router, MediaRouter.RouteInfo route) {
            super.onRouteVolumeChanged(router, route);
            Log.d("ROUTE_VOLUME", String.valueOf(route));
        }

        @Override
        public void onProviderAdded(MediaRouter router, MediaRouter.ProviderInfo provider) {
            super.onProviderAdded(router, provider);
            Log.d("ROUTE_PROVIDER_ADDED", String.valueOf(provider));
        }

        @Override
        public void onProviderRemoved(MediaRouter router, MediaRouter.ProviderInfo provider) {
            super.onProviderRemoved(router, provider);
            Log.d("ROUTE_PROVIDER_REMOVED", String.valueOf(provider));
        }

        @Override
        public void onProviderChanged(MediaRouter router, MediaRouter.ProviderInfo provider) {
            super.onProviderChanged(router, provider);
            Log.d("ROUTE_PROVIDER_CHANGED", String.valueOf(provider));
        }
    }, MediaRouter.CALLBACK_FLAG_PERFORM_ACTIVE_SCAN);

    MediaRouteButton button = (MediaRouteButton) findViewById(R.id.media_route_button);
    button.setRouteSelector(mediaRouteSelector);

}

}

dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile 'com.android.support:appcompat-v7:19.0.+'
compile 'com.android.support:mediarouter-v7:19.0.+'
compile 'com.google.android.gms:play-services:4.2.+'
...

}

android {

defaultConfig {
    minSdkVersion 9
    targetSdkVersion 19
}

compileSdkVersion 19
buildToolsVersion "19.0.+"

}

    <uses-sdk
    android:minSdkVersion="9"
    android:targetSdkVersion="19" />

从4.3 Nexus 7中找不到路由的日志 https://gist.github.com/darussian/9957516

日志从4.0.4 Toshiba Thrive找到路线 https://gist.github.com/darussian/9957547

这两个日志是相同的apk。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我提出的解决方案是出厂重置所有未找到chromecast的设备。我假设某些内容已在Google Play服务中缓存,清除缓存无法解决。由于重新安装GMS不是一种选择,因此重新格式化是唯一的选择。