以编程方式检查Android应用程序的最低要求版本并进行升级

时间:2016-08-24 04:56:54

标签: android

我有一个用例,我们希望有选择地禁用Android,直到用户升级到最低要求版本。这个问题是为类似案例获取设计输入和最佳实践。

通常情况下,流程如下: -

  1. 启动应用程序后,主活动线程将检查当前安装的版本是否存在。 (我正在寻找指向Google API / TPL的指针,以便以编程方式实现此目的)。

  2. 然后,应用程序会检查所需的最低版本。 (这可以通过维护休息服务所需的最低版本来完成)。但是,是否可以在Play商店中维护所需的最低版本?

  3. 强制用户升级,如果当前版本<最低要求版本。 (将用户重定向到App Store,不让他们回到应用程序直到他们升级 - 我也在寻找这种情况的代码指针)

  4. 请注意,这与应用商店中用于升级的推送通知不同。与推送通知不同,此逻辑允许我的应用程序在我的用户群中保留一些最小版本。

2 个答案:

答案 0 :(得分:1)

如果您使用的是Android Studio,则可以使用以下代码检查应用的当前版本

int versionCode = BuildConfig.VERSION_CODE;
String versionName = BuildConfig.VERSION_NAME;

我不认为在Play商店中维护已安装的版本是可能的,因此使用rest api是可选的。

要强制用户更新应用,请使用api中的版本检查当前版本,如果不符合条件显示带有两个选项的警告对话框退出更新。 要启动更新意图,您可以执行类似这样的操作

Intent updateIntent= new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + your app package name));

<强>更新 您还可以使用第三方库来检查更新。我使用的是gpversionchecker

答案 1 :(得分:0)

  

启动应用程序后,主活动线程将检查   存在当前安装的版本。 (我正在寻找指针   通过Google API / TPL以编程方式实现此目标。)

是的,我们可以检查当前安装的应用程序版本。

int versionCode = BuildConfig.VERSION_CODE;
String versionName = BuildConfig.VERSION_NAME;
  

然后,应用程序会检查所需的最低版本。 (这可以   通过维护休息服务所需的最低版本来完成。   但是,是否可以维持所需的最低版本   Play商店?

使用REST服务维护版本控制是一个非常好的主意。就个人而言,我想建议像这样维护REST服务的路径。

https://www.domainname.com/api/v1/

然而,我并没有明白你的意图。我想你在这里谈论Android版本。因此,如果您正在考虑Android应用程序的最低API级别,那么您不必担心它。 Play商店会照顾它。

例如,如果您之前已经上传了要升级的apk。 Play商店将保留两者,用户将降低Android版本将获得您上传的旧apk。您也可以从Google Play Developer Console中删除旧版应用程序。

更新:您无法将所有版本的应用兼容至Android版本的最低级别。只有在为应用程序更改了最低SDK级别时,才能保留不同的版本。

  

强制用户升级,如果当前版本&lt;最低要求版本。   (将用户重定向到App Store,而不是让他们回到应用程序中   直到他们升级 - 我也在寻找这种情况的代码指针)

如果某些用户正在使用以前版本的应用程序,则如果尚未在应用程序内编码,则无法强制更新。虽然我们可以想到这里的解决方法。当您更新API版本号(例如https://www.domainname.com/api/v2/)时,REST API调用可能会停止提供旧应用程序。因此,如果来自服务器的响应消息显示在某处,您可以向他们显示一些消息作为API的响应。

更新:因此,如果您希望所有用户下载应用程序更新,您希望将其移至服务器API版本V2,则可能需要选择停止V1的所有服务以及何时停止从旧版本的应用程序调用服务,您可能会像我之前所说的那样给它一个响应。

希望有所帮助!