如何确定Android上Google Play服务的实际构建数量?
注意:我不想在模拟器中更新google play服务。我不在乎它是否过时。我提到它只是为了显示logcat正在报告实际的版本号,我希望在应用程序中访问它 类似,但不同于 如果设备上没有安装最新的Google Play服务,我正在使用Android Studio 1.2.2开发的一个应用程序将遇到问题,但GoogleAppAvailability没有报告问题,因此指示用户更新的代码从未被调用。如果我手动告诉用户使用手动链接更新play store中的play服务,则会有可用的更新,并且在用户安装后,应用程序会正常运行 但是,我无法找到一种方法来确定用户是否需要通过应用程序代码或gradle构建文件进行更新如何确定Android上Google Play服务的实际构建数量?,android,android-studio,google-play-services,Android,Android Studio,Google Play Services,注意:我不想在模拟器中更新google play服务。我不在乎它是否过时。我提到它只是为了显示logcat正在报告实际的版本号,我希望在应用程序中访问它 类似,但不同于 如果设备上没有安装最新的Google Play服务,我正在使用Android Studio 1.2.2开发的一个应用程序将遇到问题,但GoogleAppAvailability没有报告问题,因此指示用户更新的代码从未被调用。如果我手动告诉用户使用手动链接更新play store中的play服务,则会有可用的更新,并且在用户安装后
有没有办法以编程方式在上面第3项中报告此版本号?如果是这样的话,我可以与之进行比较,而不是使用GooglePlayServicesAvailable的GooglePiAvailability方法——我已经在使用该方法,但在需要更新的设备上报告成功。如果有更新,此功能将告诉用户更新
GooglePlasServices
。如果此函数返回true
private boolean checkPlayServices()
{
int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if (resultCode != ConnectionResult.SUCCESS)
{
if (GooglePlayServicesUtil.isUserRecoverableError(resultCode))
GooglePlayServicesUtil.getErrorDialog(resultCode, this, 9000).show();
else
{
Log.i(TAG, "This device is not supported.");
finish();
}
return false;
}
return true;
}
如果更新可用,此功能将告诉用户更新
GooglePlasServices
。如果此函数返回true
private boolean checkPlayServices()
{
int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if (resultCode != ConnectionResult.SUCCESS)
{
if (GooglePlayServicesUtil.isUserRecoverableError(resultCode))
GooglePlayServicesUtil.getErrorDialog(resultCode, this, 9000).show();
else
{
Log.i(TAG, "This device is not supported.");
finish();
}
return false;
}
return true;
}
我设法做了一些挖掘,回答了我自己的问题。下面的代码将实现我(可能还有其他人)想要的功能
PackageInfo pi=getPackageManager().getPackageInfo(“com.google.android.gms”,0);
if(pi.versionCode<您想要的版本)
{
//指示用户更新
}
我所做的是将其包装到所需的异常处理程序中,并在API检查报告成功时运行它。如果版本太低,我调用getErrorDialog,就像API检查失败一样,需要ConnectionResult.SERVICE\u version\u UPDATE\u而不是返回的成功值
执行此操作可能需要更新最小SDK目标。例如,我的手机(5.0.1)和平板电脑(4.2.2)都报告API检查成功,并且前往play store都不会显示任何一个的更新;然而,桌面上安装的版本是7895032,而电话上安装的版本是7895438。我已经设法做了一些挖掘,并回答了我自己的问题。下面的代码将实现我(可能还有其他人)想要的功能
PackageInfo pi=getPackageManager().getPackageInfo(“com.google.android.gms”,0);
if(pi.versionCode<您想要的版本)
{
//指示用户更新
}
我所做的是将其包装到所需的异常处理程序中,并在API检查报告成功时运行它。如果版本太低,我调用getErrorDialog,就像API检查失败一样,需要ConnectionResult.SERVICE\u version\u UPDATE\u而不是返回的成功值
执行此操作可能需要更新最小SDK目标。例如,我的手机(5.0.1)和平板电脑(4.2.2)都报告API检查成功,并且前往play store都不会显示任何一个的更新;但是,桌面上安装的版本是7895032,而手机上安装的版本是7895438。模拟器没有安装google play服务或正确的版本。可能的副本不是副本,与更新模拟器无关。请阅读整个问题。模拟器没有安装google play服务或正确的版本。可能的副本不是副本,与更新模拟器无关。请阅读整个问题。请阅读问题。我已经做到了。如果应用商店中有更新的版本修复了一个bug,它会报告成功。这有用吗?我不认为。我相信这是一个静态版本号,不会因设备而改变,但我可能错了。在任何情况下,我都找到了从软件包管理器获取所需版本号的方法,请参阅下面的答案。请阅读问题。我已经做到了。如果应用商店中有更新的版本修复了一个bug,它会报告成功。这有用吗?我不认为。我相信这是一个静态版本号,不会因设备而改变,但我可能错了。在任何情况下,我都找到了从软件包管理器获取所需版本号的方法,请参见下面的答案。