Jaz*_*Jaz 10 android firebase chromecast
我最近更新了com.google.android.gms:play-services 9.2.0并尝试使用新的Chromecast库和Firebase Analytics但收到错误"com.google.android.gms.internal.zzsj $ zza :找不到可接受的模块.本地版本为0,远程版本为0." 在com.google.android.gms.cast.framework.CastContext中的Activity onCreate方法中.(未知来源).任何想法,如果这是由于Cast功能不与模拟器一起使用或者是否是版本问题?我正在测试的模拟器运行5.0和5.1.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FirebaseAnalytics mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
setupCastListener();
mCastContext = CastContext.getSharedInstance(this);
mCastSession = mCastContext.getSessionManager().getCurrentCastSession();
mCastContext.getSessionManager().addSessionManagerListener(mSessionManagerListener, CastSession.class);
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
}
Run Code Online (Sandbox Code Playgroud)
谢谢
Bob*_*der 11
模拟器上的Play服务版本不支持9.2.0.这时,我认为任何模拟器映像都不支持9.2.0.您的选项是降级到9.0.2,或者在真实设备上运行,直到发布更新的模拟器映像.
如果仔细查看logcat输出,您应该看到如下消息:
W/GooglePlayServicesUtil: Google Play services out of date. Requires 9256000 but found 9080030
Run Code Online (Sandbox Code Playgroud)
您可以转到"设置/应用",查找Google Play服务,然后点按它以获取应用信息,即可查看模拟器正在使用的GPS版本号.
您可以通过调用GoogleApiAvalability.GOOGLE_PLAY_SERVICES_VERSION_CODE从代码中获取GPS版本号.
此答案包含有关模拟器版本的一些相关信息.
更新Adrian Cretu关于真实设备的问题
我的实验表明,在真实设备上运行的Cast应用程序可以检测旧版Play服务并启动解决方案处理.我尝试了CastVideos示例应用程序.我的解决方案可能不是最好的,但演示了这个概念.我创建了一个在启动时运行的新活动,并检查Play服务的可用性.我更改了清单,使此活动成为启动器活动,而不是VideoBrowserActivity
:
public class InitActivity extends AppCompatActivity {
private static final String TAG = "InitActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GoogleApiAvailability googAvail = GoogleApiAvailability.getInstance();
int status = googAvail.isGooglePlayServicesAvailable(this);
Log.i(TAG, "onCreate: Status= " + googAvail.getErrorString(status));
googAvail.makeGooglePlayServicesAvailable(this)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Log.i(TAG, "onComplete: Done");
if (task.isSuccessful()) {
Log.i(TAG, "onComplete: Starting VideoBrowser");
startActivity(new Intent(InitActivity.this, VideoBrowserActivity.class));
finish();
} else {
Log.e(TAG, "onComplete: RESOLUTION FAILED");
}
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
如果Play Services存在,最新且已启用,则检查可用性的任务会立即完成并启动VideoBrowserActivity
原始启动活动.否则,将显示一个对话框,告知用户必须升级Play服务,并在用户接受后,打开Play商店,用户可以开始下载最新版本.
我无法找到一种方法来干净地过渡回到VideoBrowserActivity
.我不得不重新启动应用程序.通过更多工作,我认为可以从过时的Play服务中获得干净的恢复.至少比应用程序崩溃更好的东西.
归档时间: |
|
查看次数: |
11630 次 |
最近记录: |