我将把我的应用程序的新版本放在Google Play中。检测手机旧版应用程序上安装的最佳方法是什么?
请注意,我会检测到我的应用程序的旧版本已安装。请注意,我的应用程序已安装在手机上,而且我没有关于版本的信息(我不认为我会分发新版本)。
答案 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。