确定从Google Play商店购买应用的日期(或版本) - 相当于iOS appStoreReceiptURL

Car*_*s P 17 android ios google-play

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

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

Google API中是否有相应的内容?

Mac*_*ado 14


获取时间和日期安装


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

long installTime = context.getPackageManager()
                   .getPackageInfo("com.some.package.name", 0)
                   .firstInstallTime;
Run Code Online (Sandbox Code Playgroud)

版本一起

PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
version = pInfo.versionName;
Run Code Online (Sandbox Code Playgroud)

不幸的是,只要卸载并重新安装应用程序,此日期就会重置.

如果你去

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

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


建议的解决方案


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

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


  • 这是首次安装时间,而不是Google Play商店中的购买日期。返回的时间纯粹是本地时间,与购买Play商店无关:重新安装该应用程序将获得新的价值。 (2认同)