Google Cast SDK不兼容api> 24吗?

时间:2018-06-30 06:57:22

标签: java android casting sdk chromecast

我收到用户的反馈,显示投射按钮不会显示。

起初,我认为问题可能出在我的应用未正确发布,因为我是唯一能够看到该按钮的人。

经过几次测试后,投射接收器应用程序和投射设备似乎不是问题。我认为这可能是兼容性问题,因为运行api> = 26的设备不会显示该按钮,但是会打开api24。

将我的实现和api从24个目标升级到27个目标并不能解决问题。

compileSdkVersion 27
defaultConfig {
    applicationId 'AppId'
    minSdkVersion 16
    targetSdkVersion 27
    versionCode 2
    versionName '1.1'
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

这是我的依赖项:

dependencies {
    implementation 'com.github.dmytrodanylyk.shadow-layout:library:1.0.3'
    implementation 'com.github.medyo:fancybuttons:1.8.4'
    implementation 'com.pes.materialcolorpicker:library:1.2.0'
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    //implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    implementation 'com.google.firebase:firebase-core:15.0.0'
    testImplementation 'junit:junit:4.12'
    implementation 'com.google.android.gms:play-services-cast-framework:15.0.1'
    implementation 'com.android.support:mediarouter-v7:27.1.1'
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support:recyclerview-v7:27.1.1'
    implementation 'com.android.support:support-v4:27.1.1'
    implementation 'com.sofakingforever.libraries:iconpack:0.0.7@aar'
}

注意:firebase并非最高版本,因为gms和firebase必须是同一版本。

使用Cast documentations中的示例应用程序“ cast hello world”,我遇到了完全相同的问题。它可以在api 24上使用,但不能在更高版本上使用。

这是我的Options.java:

public class Options implements OptionsProvider {

  @Override

  public CastOptions getCastOptions(Context context) {
    return new CastOptions.Builder()
            .setReceiverApplicationId(context.getString(R.string.cast_app_id))
            .build();
}

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

这是我的菜单充气机:

public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.main, menu);
// Setup the menu item for connecting to cast devices
CastButtonFactory.setUpMediaRouteButton(this, menu, R.id.media_route_menu_item);
return true;
}

请帮助。

0 个答案:

没有答案