Expiring a Trial App

magicuser68

Member
Licensed User
Longtime User
I read a few posts about different ways to Expire Trial apps.

I would prefer to use a remote database or service since it would be harder to crack.

My question is, what is the lowest cost method and does anyone have a recommendation for someone on a budget? I can't see spending a lot of money on a database that only holds a key and a date. Has anyone used a free host successfully for this?

Thank you
 

warwound

Expert
Licensed User
Longtime User
You get what you pay for.

Free webhosts tend to attract users that will abuse that free hosting - that in turn leads to ongoing downtime while the free webhost finds and eradicates the abusers.

I have been with justhost.com for the past 2 or 3 years and find that the cost of a .co.uk domain and a justhost.com package provides me with all options i require - add to that the fact that i can't remember justhost.com having any downtime since i've been with them and it's money well spent.

Can you afford for your application to fail to be able to check whether a trial period has ended or not?

Martin.
 
Upvote 0

PFlores81

Active Member
Licensed User
Longtime User
Another point to consider is what happens when the device is offline. Do you allow the program to run or not.


You could allow a 7 day token on the device for said app. When the token expires, the app will pop up a toast or msg stating to connect to WiFi or data to refresh the token. I am not sure if B4A can do this but I do know there are a few apps I have that do this with market license check.
 
Upvote 0

warwound

Expert
Licensed User
Longtime User
I worked on a similar problem recently.

The best solution for my use case was:

1) Establish a unique id for each and every device that has the app installed.

2) Do not allow the app to run until the online database has been connected to.
Once connected to the online database check to see if that unique id has already been added to the database.

If the unique id already exists then has that device's trial period ended or not - allow the app to run accordingly.

If the unique id does not exist in the database then grant the user a trial period.

This ensures that the user cannot simply uninstall and then reinstall the app.

3) Assuming that the app is now running in trial or paid for mode, each time the app is started a connection to the database is made and the app's status checked.

If no internet connection is available the app will continue to run - unless the trial period (as stored on the device) has come to an end.

Now this app uses the internet and is in fact pretty useless with no internet connection.
So if the user disables internet to enable the app to continue to run then the app will have no practical use.

4) If the app is started and an internet connection is available then the app's status is checked.
The details stored on the device are also compared to the details stored in the online database - any attempt by the user to hack the details stored on the device will be detected and the app no longer work.

Lastly, using the read and write encryted objects methods of the RandomAccessFile library to store details about the app's status makes it pretty difficult for the average user to hack the stored details to extend the trial period.

Martin.
 
Upvote 0

Gary Miyakawa

Active Member
Licensed User
Longtime User
Along this same line... If we wanted to keep the "file" local inside of the device... Where might be some good places to "hide" this information on a un-rooted device ?

Ideas ?

Thanks,

Gary M
 
Upvote 0
Top