检测Android上的旧版应用程序

时间:2017-01-18 17:11:37

标签: android

我将把我的应用程序的新版本放在Google Play中。检测手机旧版应用程序上安装的最佳方法是什么?

请注意,我会检测到我的应用程序的旧版本已安装。请注意,我的应用程序已安装在手机上,而且我没有关于版本的信息(我不认为我会分发新版本)。

3 个答案:

答案 0 :(得分:0)

我曾经在用户尝试登录时将versionAPP发送到服务器,之后我将该版本与保存在数据库中的当前版本进行比较。

答案 1 :(得分:0)

如果您只想获取相关信息,可以在开发者控制台中进行。

登录您的开发者帐户。 有图表和信息显示您想知道的所有内容。

选择您的应用,在那里您可以看到按手机型号,Android版本和应用版本进行的安装。

详细了解here

答案 2 :(得分:0)

如果您还没有存储版本代码的方法,那么这种方法应该有效:

首先在onCreate()方法中获取当前版本代码,如下所示:

public int versionCode;
PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
versionCode = pInfo.versionCode;

使用onStop()方法添加代码以保存当前版本代码,如下所示:

SharedPreferences sp = getSharedPreferences("prefs", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putInt("version_code", versionCode);
editor.commit();

然后在onCreate()方法本身中获取以前的版本代码

public int prevVersionCode = -1;

SharedPreferences sp = getSharedPreferences("prefs", Activity.MODE_PRIVATE);
int prevVersionCode = sp.getInt("version_code", -1);

if(prevVersionCode == -1) {
    // this will happen on a previous app version
}

如果 prevVersionCode等于-1 ,则表示这是已更新的旧版应用。

如果 prevVersionCode不等于-1 ,则表示刚刚更新应用的版本比添加此保存代码的版本更新。

现在,您可以使用 versionCode prevVersionCode 轻松比较不同版本,请注意,如果 prevVersionCode等于-1 ,则表示之前该应用程序是在没有存储方法的版本上,但现在它已更新为更新版本。

例如:假设该应用当前位于versionCode 13上,您添加此代码并使用versionCode 14发布更新。因此,当用户更新应用时, prevVersionCode将等于-1 你可以做任何你想做的事。 versionCode将等于14,但prevVersionCode将给出-1,仅在FIRST RUN 。重新启动时, versionCode prevVersionCode 将提供 14

现在假设您进一步更新您的应用并使用versionCode 15发布更新。现在,在首次运行更新的应用中, versionCode将提供15,但prevVersionCode将提供14 。但重新启动后,两者将给出15。