Determine date (or version) that app was purchased

2020-06-08 16:39发布

I'd like to determine which version of my Android app a user originally purchased from the Google Play Store. I need this info to help support moving from a paid app model to a freemium model.

In iOS7 onwards, you can do this by using [NSBundle appStoreReceiptURL] which returns a URL of the App Store receipt that can be examined.

Is there an equivalent in the Google APIs?

1条回答
该账号已被封号
2楼-- · 2020-06-08 17:00

Getting Time and Date Install


You can get the time and date of the first install of the app by using

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

And the version with

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

Unfortunately this date will reset whenever the app is uninstalled and reinstalled.

If you go with

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

you will also find out the date when an application was installed, but the time returned will change every time the package is updated.


Suggested Solution


A solution could be an online database for your application, where you can store each user's ID using AccountPicker, their first-time-install with the methods described above and use them at login. You can also use the App Licensing Service.

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


查看更多
登录 后发表回答