android - Offer free features to earlier buyers -


i have paid app in google play store. i'm considering reducing price of app (somewhat; not way free) , offering 1 of features separate in-app purchase.

if did that, wouldn't want yank feature away who's bought it.

is there way figure out either date user bought app, or original version of app bought, or that? i'd like, "if app before price change (either date or version), should have feature free; otherwise, require iap unlock feature."

for example, ios have feature this; app receipt includes "originalversion" field can used control access features.


unfortunately customers, impossible. there no api call or else google play can time on app bought.

i know there android-publisher api in existance, doesn't offer feature check that.

the functions want use not public availible , used playstore internally!




workarounds do:

1. time app installed

on first start check , unlock features.

warning: system abused changing time on device

long installed = context .getpackagemanager() .getpackageinfo(context.getpackag‌​ename(), 0) .firstinstalltime; 


2. give users free keys

you give every user who's using app atm free key via mail or push notification


3. unlock inapp purchase now

publish app update unlocks inapp purchase free. after few weeks pusblish new version lower price , unlock features if current customers had bought extension.

you might able hack way around if you're using sort of persistent storage.

for sharedpreferences, on first run, check 1 of preferences using sharedpreferences.contains(). if contains it, app must have been installed. if not, set preference marks user new, , set yet 1 more doesn't check every time.

that might work if preference doesn't have "default" value, i'm not entirely sure if setting default in xml mark contained.

you similar if have assets transferred sd, or similar one-time setup. check see if it's done before doing first time.

if you're using sqlite db, increment db version , mark "paid" in onupgrade() if coming current version(or earlier).

there pitfalls here, though. instance, if previous paid customer uninstalls before installing new version, or if it's on new device. reason should:


4. provide support

in or faq section of app , on first run of new version set support mail adress customers can use if have problems because new features not unlocked them.

they provide proof (bill) purchase.




said, ideas workarounds, don't know of "official" way check see app install upgrade or initial install.

your best option may combination of four.




fyi: i've opened feature request/idea in google cloud connect work vote: https://connect.googleforwork.com/ideas/9392 (you can vote if have paid google buisiness account)


hope helps @ least bit.


Comments

Popular posts from this blog

c# - Binding a comma separated list to a List<int> in asp.net web api -

Delphi 7 and decode UTF-8 base64 -

html - Is there any way to exclude a single element from the style? (Bootstrap) -