I have developed a application. i want to make user to subscribe it for one year. After one year i want to disable/uninstall my application automatically.
How can i do this?
Thank you.
If it's a paid application, you should be able to use the licensing available on the Android marketplace to do what you require. It will not uninstall the application but it should be able to disable it.
edit: However, I don't have enough experience with the licensing to know if uninstalling and reinstalling the app will reset the time period or if there is any way to allow reinstalls. It may be worth experimenting with though.
Related
I’m currently working on an android application.
I’m developing this application for a small company of cleaning, they need the application to coordinates in a better way the work.
I was wondering which one is the best way to let the final user install the application, like for example:
-Publish it on the play store
-Send to each user the .apk
Also, keep in mind that the app will be updated in the future so must be easy to apply the updates.
In the end, I’d like to know which kind of approach can suit my situation and which one is the best way to proceed, thanks to everyone.
If you want easy updates, play store is definitely the way to go. BUT. Everybody would be able to download your app so you have to create an authentification system.
If you want to publish your app just for the final users, they can install a .apk. However, updates will be complicated as every user would need to reinstall the .apk for each update.
That's up to you.
We have project requirement where we need to force the user to upgrade the app in android and iOS both. And the application we have developed using the Hybrid technology phonegap + dojo.
I have few question with respect to that
Is it possible to make the user upgrade the app as soon as he opens the application
If yes then is there any API's available to perform this task in Android and iOS.
Is there any restriction from Apple and Android to make user upgrade forcefully.
Please can anyone help me in this. thanks a lot.
There is no API for this, but you can create a service that returns the version number of the latest allowed app or something to that effect, that can get checked on application launch and if it does not match you can ask the users to update.
I'm not sure if Apple/Google have any restrictions on this, but I've worked on a project that does this and there weren't any issues on either platform.
The only catch here is that if you already have an app in store then this might not be so feasible.
So to answer your questions:
No
No
Not 100% certain, but I don't think so.
Not if they don't want to. With mobile devices some people are sensitive about rationing out their limited bandwidth so there would be a small uproar if this was allowed.
It may be a bit late now if your app has already left the stable, but would it not be more user friendly for your app to check for updates and gently inform the user that if they do not update then the app will not be able to function until they do. If a user truly doesn't care about that sort of thing there are settings on there device to allow updates automaticly
I sell a game on Google Play called Quantum-X. Not many people have bought it so I want to move to an ad-supported model and make it a free download.
But I want to reward the people who did buy the game by disabling advertising. So existing users see no ads, new users see ads. I can store a flag in some obfuscated, device specific way which makes this determination.
But in order to this I need to tell the difference between paying and non paying users.
So how do I do this? I have a few ideas but I don't know if any of them are viable:
The old app wrote some preferences out. I could look for an old preference and set the flag. But this will not work if someone installs the app on a clean device since they won't have that preference. It is also an exploit since anybody could put the old key in to fool my app into disabling advertising.
My pay app currently uses LVL to validate a person's licence. If I make my app free, what happens when I call LVL? Does it respond LICENCED even if a user downloaded it for nothing? If I could tell paid from non-paying users from the response then I know how to set the flag. But LVL is a pain to test since I would have to upload the app, set it to free and then see what difference there is in the result and there may be none.
I could produce one final update of my pay app which sets the flag and asks users to upgrade. Then I could roll out the app free in a month from now. The same problem exists as with 1. that some users may not update or may install onto clean devices.
I could produce two apps on the store. The pay app could be renamed to "Quantum-X legacy" and a new Quantum-X goes in its place which is free. I would update the legacy version to install the flag, but people would have to switch to the new version for continued support. This would work but it's a lot more effort.
None of these are pretty although 2. would be the least amount of work. Has anyone experience of a working solution, or know a some better way of doing this?
EDIT: My intention is now a hybrid and I've begun to do this:
Rename the old app as Quantum-X Legacy and update the description.
The new free version is called Quantum-X. The only fly in the ointment here is that I must update the app package in the manifest to make the two apps distinct.
I intend to put a test into the free version that calls LVL using the old app's key. If this works the way I think it will, it will tell me when a user has bought the old app (since the licence server is being asked about the old app), and I can write out an obfuscated flag somewhere so I don't have to call LVL any more.
Free users carry on but with ads.
I'm up to 3. and this is my intention. If LVL doesn't work, then I might have to put out an update to the legacy version which writes the flag or puts a code out on screen that someone must use to enable adfree when they install the other version.
I have seen so many threads on creating a time bound trial versions for an android apps but none of them seems to fulfill my purpose.
Few days back i Launched the paid version of my app and now I want to come up with trial version which i dont want to be crippled from any side. So i want to have a time bound limitation on the trial version. I have created a different Package name for the same. Earlier I was using LVL and now also I am using the same except that i created new license library and changed the
setValidityTimestamp(extras.get("VT"));
to
setValidityTimestamp(String.valueOf(System.currentTimeMillis() + (5* MILLIS_PER_MINUTE))); in ServerManagedPolicy.
so that i can test if trial version works for 5 mins and then give me the license error. I published it on the app store , downloaded it and then found that it was still working beyond 5 mins. Now i have unpublished it. Can someone help me in creating the better time bound application which a user can run for a week (say). Besides he should not be able to uninstall and re-install it and then again use it permanently. I know if i can write the info to some external file but again the file can be deleted from sd card and application can be made accesible to the user free for lifetime.
Regards
Pankaj
Within the current capabilities of LVL, and the degree of user control over your average handset, there is currently NO way to do this without a server-side component. Once your app is uninstalled all traces (except, as you pointed out, files you may write to the SD card, which are user-visible) are removed, so the only way to check for an uninstall/re-install is to generate a consistent, device-specific identifier and check with a server component that will either reject this as a re-install or accept it as a new time trial. Even this can possibly be spoofed by a dedicated customer (depending on the server-side component behavior), so you would need to engineer your software so that your server-side component is a necessary part of the process (i.e. it isn't just a license check, it is actually part of the application's functionality).
If you come up with something that works I'd love to hear about it, but I'd say you're out of luck.
#Femi is right, you need a server side component to make always work. What I tend to do is publish only a free version, and teh user buys the full version as in-app-purchase. The IAP server is your server side check if the use purchased the upgrade or not. You can store a pref on first use to know when the user started using the app. If users uninstall and install again your app, they get a new trail period, but this is annoying, and few will do it to save a few bucks. If you add a message in the app where you ask user nicely to upgrade, or have ads that are removed once you upgrade, it is a good enough solution.
I have uploaded an android app over Android Market. It is free and anyone can download it from the Market.It is downloaded over 100,000 times. And now i want to upload an updated version of that app. This time i want to charge $0.99 for each download. But i have a fear of jail-breaking. There are many websites offer paid apps of Android Market in free.
So, the question is how to stop this jail-breaking of android apps?
Thank you very much in advance.
And now i want to upload an updated version of that app. This time i want to charge $0.99 for each download.
You can't do that. You can offer a new app for $0.99, but you cannot make a free app be no longer free.
So, the question is how to stop this jail-breaking of android apps?
Use the LVL and hope for a fair amount of luck. Any license scheme can be cracked, but you may make it difficult enough that nobody will bother trying it for your app.
Or, choose a business model where you do not have to charge for the app.
No, there really isn't. Maybe have a license key like Launcher Pro, but even then I'm sure somebody will be able to bypass that.
Unfortunately, Google's LVL is simple to crack.
http://www.readwriteweb.com/archives/android_drm_cracked_pirating_apps_is_easy.php