作者:欧毅儒 | 来源:互联网 | 2023-02-13 10:31
是)我有的
我的应用程序严重依赖Google Play服务(适用于Firebase),因此我需要用户的设备安装Play服务.更重要的是,设备中安装的Play服务版本应该等于或高于我在我的应用中使用的Play服务.
我想要的是
如果用户使用我在我的应用中定位的旧版Play Services版本,我想在我的应用的启动画面中显示一条消息(可能是对话框或小吃吧).
与目前一样,我在我的应用中使用的Play服务版本是10.0.1.这显然是版本名称.
我知道我能做到这一点,
int v = getPackageManager().getPackageInfo("com.google.android.gms", 0 ).versionName;
但我无法比较设备中安装的Play服务版本和我正在使用的Play服务?我应该使用versionCode而不是versionName吗?如果是这样,我如何知道我正在使用的Play服务的versionCode?
或者有不同的(或更好的)方法吗?
1> Usman Ghauri..:
这是我使用的方法..干杯
public static boolean checkPlayServices(Context context) {
final int PLAY_SERVICES_RESOLUTION_REQUEST = 9000;
GoogleApiAvailability api = GoogleApiAvailability.getInstance();
int resultCode = api.isGooglePlayServicesAvailable(context);
if (resultCode != ConnectionResult.SUCCESS) {
if (api.isUserResolvableError(resultCode))
api.getErrorDialog(((Activity) context), resultCode, PLAY_SERVICES_RESOLUTION_REQUEST).show();
else {
showToast(context, "This device is not supported.", true);
((Activity) context).finish();
}
return false;
}
return true;
}
要稍微扩展这个答案,您可以检查以下条件`resultCode == SERVICE_VERSION_UPDATE_REQUIRED`.有关结果代码及其含义的完整列表,您可以查看[文档](https://developers.google.com/android/reference/com/google/android/gms/common/ConnectionResult)