【发布时间】:2014-04-03 16:17:19
【问题描述】:
突然间,我的一半设备无法找到我正在测试的 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。非常感谢任何帮助。
【问题讨论】:
标签: android chromecast