Question

All,

I want to release an app that has all the features of the paid app, but is like a 7 day demo. What is the best way to execute doing this. I originally thought to track the trial period under shared preferences, but this could be worked around by uninstalling and re-installing the app. I thought about writing a file the phone's sd card, but again this could be worked around. Any suggestions would be great.

I saw a few responses below about using a webserver, which is what I was leaning towards. I was thinking a MySQL database and have the phone register oncreate() with UUID and date. Would someone be able to give me some help on how to do the following two things:

1) Handle the bug where UUID were the same for certain handsets. 2) How do I transfer data to MySQL database with android/java.

Thanks

Was it helpful?

Solution

You could get a UUID hash of the device when the app is first launched ( Some info about UUID for android devices here Is there a unique Android device ID?) and store them on a server you control. Retrieving and storing would probably be done using a webservice. Store the UUID hash and date when first launched. You'd also want to store the info locally in case the user is offline as well. Combining both of these methods would probably be sufficient for a demo use.

EDIT: I don't see a great way to get around UUID issues, possibly using both the device ANDROID_ID and MAC address instead of just one. Some more info at http://android-developers.blogspot.ca/2011/03/identifying-app-installations.html regarding how to get these.

For implementing a webservice it can be done fairly easily. For how to create a RESTFUL webservice there is a decent tutorial located at http://www.ibm.com/developerworks/web/library/wa-aj-tomcat/ . DB access between java and mysql has plenty of tutorials floating around.

OTHER TIPS

I think that the best way is controlling your application on internet.. You can create a script a web language and you can get ip address which has connected and control this ip address or some special number (like serial number) and store them to your remote database.. as I know, you cant connect a remote database directly. you need to use some interface (like web scripts) I think its more safety than local storing..

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top