Chromecast按钮在Android中不可见

问题描述:

我正在关注code lab tutorialChromecast按钮在Android中不可见

我的摇篮文件看起来像这样

dependencies { 
compile 'com.android.support:appcompat-v7:25.0.0' 
compile 'com.android.support:mediarouter-v7:25.0.0'} 

这是我CastOptionsProvider类

public class CastOptionsProvider implements OptionsProvider { 
@Override 
public CastOptions getCastOptions(Context context) { 
    return new CastOptions.Builder() 
      .setReceiverApplicationId(context.getString(R.string.chromecast_app_id)) 
      .build(); 
} 

@Override 
public List<SessionProvider> getAdditionalSessionProviders(Context context) { 
    return null; 
}} 

这是菜单的xml文件

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools"> 

<item 
    android:id="@+id/media_route_menu_item" 
    android:title="@string/media_route_menu_title" 
    app:actionProviderClass="android.support.v7.app.MediaRouteActionProvider" 
    app:showAsAction="always" /></menu> 

而且这是在MainActivity我OnCreateOptionsMenu方法

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    super.onCreateOptionsMenu(menu); 
    getMenuInflater().inflate(R.menu.navigation_drawer, menu); 
    mediaRouteMenuItem = CastButtonFactory.setUpMediaRouteButton(getApplicationContext(), menu, R.id.media_route_menu_item); 
    return true; 
} 

而这个清单文件

<meta-data 
     android:name="com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME" 
     android:value="com.mypackage.CastOptionsProvider" /> 

我按照代码实验室教程,其具体形式,复制并同时改变其需要改变的那些变量粘贴的一切。 我的应用程序和chromecast设备连接到同一个网络。 Chromecast按钮会显示在Youtube应用中,但不会显示在我的应用中。我错过了什么? 感谢

+0

看到你的链接tutorial.at最后笔记 –

+0

记住,你需要重复这些步骤,以在项目的所有活动添加演员按钮.....这条线是在给定链路在最后写...你在所有的活动中都做过...? –

+0

我已经在每个活动 – theanilpaudel

属性图标可能是无效的APP_ID。

你可以尝试从样本项目APP_ID字符串资源值替换您的chromecast_app_id字符串资源。

(现在,它的4F8B3483参见:https://github.com/googlecast/CastVideos-android/blob/master/res/values/strings.xml)。

不管你信不信,切换到该值后,我的应用程序中可以看到投射图标。

你缺少这里

 <menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools"> 

<item 
    android:id="@+id/media_route_menu_item" 
    android:title="@string/media_route_menu_title" 
    android:icon="@drawable/chromebutton" app:actionProviderClass="android.support.v7.app.MediaRouteActionProvider" 
    app:showAsAction="always" /></menu> 
+0

我们是否必须明确提供它? – theanilpaudel

+0

是的,你必须添加图标属性 – Harmantj

如果一切都处理得当,您只需要重新启动投设备(它不与您的APP_ID未经登记后重启工作)。

如果您的应用程序ID正确且状态为已发布,请登录Google Cast SDK Developer Console

发布您的应用程序ID时,请重新启动您的Chromecast设备。

出于测试目的,你可以使用CC1AD845或4F8B3483作为应用程序ID。这些来自Google示例应用程序。