Android 如何在运行时检查Google Play服务的兼容性?
我有一个Android应用程序,它使用Google的com.Google.Android.gms.maps.SupportMapFragment。在某些模拟器上,我遇到了一个问题,即显示以下消息而不是显示地图 你的应用程序名在Google Play服务中遇到问题。请再试一次 我检查了日志,发现了以下消息 GooglePlayServicesUtil:GooglePlayServices过时了。需要13400000,但找到12862027 据我所知,当模拟器上的Google Play Services版本太低,无法与正在使用的Google maps SDK兼容时,就会出现这种情况 我想做的是在应用程序启动时检查设备或模拟器上安装的Google Play Services版本是否足够,这样我就可以让用户纠正这种情况,而不是看到地图错误屏幕。我尝试了几种不同的兼容性检查方法,但在所有情况下,兼容性检查都会返回一个成功的结果,但当我导航到地图时,地图仍然显示一个错误 这是我在build.gradle中使用的映射依赖项Android 如何在运行时检查Google Play服务的兼容性?,android,google-maps,google-play-services,Android,Google Maps,Google Play Services,我有一个Android应用程序,它使用Google的com.Google.Android.gms.maps.SupportMapFragment。在某些模拟器上,我遇到了一个问题,即显示以下消息而不是显示地图 你的应用程序名在Google Play服务中遇到问题。请再试一次 我检查了日志,发现了以下消息 GooglePlayServicesUtil:GooglePlayServices过时了。需要13400000,但找到12862027 据我所知,当模拟器上的Google Play Servic
implementation "com.google.android.gms:play-services-maps:17.0.0"
在我的顶级build.gradle中,我有以下依赖项(尽管我认为这只是Firebase所需要的
classpath 'com.google.gms:google-services:4.3.3'
我还在清单中添加了google play服务版本,如下所述
这就是项目设置,现在我已经尝试确定Google Play Services在运行时是否与我的maps SDK版本兼容:
召唤
GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(applicationContext)
始终返回“success”响应,但当我启动包含SupportMapFragment的下一个活动时,仍然会看到错误消息
我也试过打电话
GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(applicationContext, version)
我不完全确定是否应该传递由返回的客户端版本
GoogleApiAvailability.getInstance().getClientVersion()
或者我是否应该通过
GoogleApiAvailability.getInstance().getApkVersion(applicationContext)
我是否应该传递添加到清单中的google play services整数
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
返回值12451000
getApkVersion()
返回值12862027
由于日志状态:
需要13400000,但找到12862027
13400000从哪里来?我似乎无法从GoogleAppAvailability类中“获取”该值,而且我没有在任何代码中明确设置该值
我做错了什么?如何验证用户的Google Play Services版本是否支持我在运行时使用的maps SDK版本
编辑:
如果我将play services地图依赖项从17.0.0更改为16.0.0,地图将按预期在模拟器上显示。因此,模拟器无法显示地图并不是一个问题,只是它无法显示17.0.0,并且我尝试执行的检查似乎不起作用。我也遇到了同样的问题。我一升级就开始检查ted从16岁映射到17岁。我不确定这是否是一个模拟器问题,或者实际设备是否会受到影响。
getApkVersion()