17

我想确定用户最初从 Google Play 商店购买的我的 Android 应用的哪个版本。我需要这些信息来帮助支持从付费应用模型到免费增值模型的转变。

在 iOS7 及更高版本中,您可以通过使用[NSBundle appStoreReceiptURL]which 返回可检查的 App Store 收据的 URL 来执行此操作。

Google API 中是否有等价物?

4

1 回答 1

15

获取时间和日期安装


您可以通过使用获取应用程序首次安装的时间和日期

long installTime = context.getPackageManager()
                   .getPackageInfo("com.some.package.name", 0)
                   .firstInstallTime;

版本_

PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
version = pInfo.versionName;

不幸的是,每当卸载并重新安装应用程序时,此日期都会重置。

如果你和

PackageManager pm = context.getPackageManager();
ApplicationInfo appInfo = pm.getApplicationInfo("app.package.name", 0);
String appFile = appInfo.sourceDir;
long installed = new File(appFile).lastModified();

您还将找到应用程序的安装日期,但每次更新包时返回的时间都会改变。


建议的解决方案


一个解决方案可能是您的应用程序的在线数据库,您可以user's ID使用AccountPicker存储每个数据库,使用first-time-install上述方法并在login时使用它们。您还可以使用App Licensing Service

http://developer.android.com/reference/android/content/pm/PackageInfo.html#firstInstallTime


于 2015-07-21T13:47:22.580 回答