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

标签 android ios google-play

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

从 iOS7 开始,您可以使用 [NSBundle appStoreReceiptURL] 来执行此操作,它返回可检查的 App Store 收据的 URL。

Google API 中是否有等效项?

最佳答案


获取时间和日期安装


您可以通过使用

获取第一次安装应用的时间和日期
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();

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


建议的解决方案


解决方案可以是您的应用程序的在线数据库,您可以在其中使用 AccountPicker 存储每个 用户 ID ,他们的 first-time-install 使用上述方法并在 login 时使用它们。您也可以使用 App Licensing Service .

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


关于android - 确定从 Google Play 商店购买应用的日期(或版本) - 相当于 iOS appStoreReceiptURL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19764667/

相关文章:

android - Actor(Akka) 和 Handler(Android) 有什么相似之处,有什么区别?

ios - Xcode 6 iPair Air 无法在设备上运行应用程序(操作系统版本)

ios - 将变量传递给嵌入在 Objective-C 中的导航 Controller 中的 View Controller

ios - 将 UIImage 数组导出到视频 - 蓝色结果

Android 4.2.2 应用程序不兼容

android - 从 Google Play 商店中删除发布应用程序

android - 登录后显示 'Unfortunately, app has stop'

java - 无法证实 Activity ComponentInfo - 空指针异常

java - Nativescript 应用程序版本 : Issue facing while gradle build

android - 申请报告需要很长时间才能更新