Give my application of Google Play - android

I have a paid app, I would like to give "codes" for some users to download it for free. Is this possible?

You want to send your "paid app" to some of your users for free, but you don't want it to be distributed out, right?
The best straightforward and non-technical approach is to buy google play gift card by yourself and send them to your selected users.
If you insist on doing this in a technical way, there is no better solution for this case if your application only has a solo paid version on play store. If you have a free version which requires user to buy a premium key or pay through in-app billing to get the paid version, you can do it this way:
Collect google account name of all the users that you want to give the chance for free promotion
Upload a new free version to google play store, in this version, your app will check the google account name of the device (you can use a db file if the number is huge), if it is in the name list, the device can get the premium promotion for free.
This is just a small trick. And it even works if you only have a solo paid version on google playstore. You can send out your application, which will check the account name before it performs the job. But this is not a good idea since user cannot upgrade your app via google play in this way.

Related

Android in app billing how and where to specify paid feature charges

Can anyone explain how does in-app billing process works for Android?
Do I need to upload two different apk (free and paid) to Play store and link buy button click in free app to paid version on Play store, but in this case will free app get replaced with paid app when user purchases paid one? How to achieve this?
If I give buy button in my free app which enabled purchase of paid full version (extra features) then how does this purchase works? Is it that upon activity startup I get some event when will tell me if app is purchased or not. Based of which I can enable paid features in my code. If yes Will this kind of logic work when user is offline? and how?
Appreciate if someone could clear my confusion with sample code. I have successfully run Google's sample code but not able to understand if I upload my app as free app how and when do I need to mention amount paid features?
Do I need to upload two different apk (FREE & paid) to play store .
This depends on the use case. If you want to give your users different app that has limited and Pro features that differs majorly then you should put two different apk's in market.
Otherwise , If your app has Free and Paid content you should include In-App purchases.
in this case will free app get replaced with paid app when user
purchases paid one ? How to achieve this.
No , Your app won't get replaced , you will only get payment successful/failed response from Google play , you have to save that information in your app shared preferences and manage your app flow accordingly.
If I give buy button in my free app which enabled purchase of paid
full version (extra features) then how does this purchase works?
Your application accesses the In-app Billing service using an API that is exposed by the Google Play app that is installed on the device. The Google Play app then conveys billing requests and responses between your application and the Google Play server. In practice, your application never directly communicates with the Google Play server for purchases. Instead, your application sends billing requests to the Google Play application over interprocess communication (IPC) and receives responses from the Google Play app. Your application does not manage any network connections between itself and the Google Play server.
If yes Will this kind of logic work when user is offline? and How.
To complete in-app purchase requests, the Google Play app must be able to access the Google Play server over the network. But after initiating a purchase request , you can save your payment response in shared preference for maintaining offline status.
Appreciate if someone could clear my confusion with sample code. I
have successfully run google's sample code but not able to understand
You should first start by reading the API docs Google Play In-app Billing and Selling In-app Products ,
if I upload my app as free app how and when do I need to mention
amount paid features ?
After that follow the steps to create In-App products on Google play account and run the API sample for those products.(There are plenty of tutorials online). Also you can take a look at official website for Establishing In-app Billing Products for Sale
Enjoy!

Which user has installed an Android App?

When an user installs an Android App from Google Play, he/she has to login with a Google Account: does exists an Android API for getting which Google Account has been used for the App installation?
I would like to sell my App from Google Play, but I would give to the buyer a free trial period. I can't use subscriptions because they require a recurring payment (monthly or yearly), whereas I would set a una-tantum price.
When the trial period expire, I can use a non-consumable In-app product, but how can I manage the trial period?
Both Google Play Licensing and In-app Billing track purchase information on a per-user basis, thus they should be able to know which user has downloaded the App or who is the current user, and I too would like to know the same info in order to manage the trial period by means my web server.
If someone of you can suggest another way, I appreciate.
There is no such API to include in your app's code to keep record of user who have downloaded your app from Play Store. However before you upload your app to Play Store , you have to create a Developers account.
There google have provided Developer Console option, and this is where you will find download information for your app.

Change a Paid Android app to a Free app with in-app purchasing

I have a successful paid for application on Google Play Store and want to update this app to be a free application with in-app purchasing.
I have just completed developing the free version of the app which gives users restricted access which can then be unlocked using an in-app purchase system.
The issue i have is that all my existing users who have paid for the app will upgrade and then be prompted to pay again, which of course isn't right.
Is there any way to check the purchase history of the user, identify that they have paid for the app previously and unlock the extra features without the in-app purchase?
Thanks for any help.
Lewis
It's been a year, so the OP probably doesn't need this, but in case anyone else happens upon this one...
You could approach this a couple of ways. Obviously there is some business logic on your new in-app purchasing app to track who has/hasn't paid. So the two ways I see you being able to go about this is as follows:
Idea 1:
You could do a preliminary update to your paid app that stores a SharedPreference or some other persistence in the app (you could store the versionCode, so you know what you're upgrading from and have business logic around that). Then update to the free version, and have the free version check your shared preference and do the right thing on an update from a "paid" versionCode.
Idea 2:
You could keep both apps separate (have a paid version and a free with in-app purchases) and push an update to the paid version to have a BroadcastReceiver that doesn't really do anything other than listen to specific intents and have your in-app purchase check to see if something will receiver your custom intent. If your old paid-version exists, then they paid for it, if not they didn't. (If they paid for the paid version then uninstalled you'll have problems obviously...)
Idea 3:
You could keep both apps separate (have a paid version and a free with in-app purchases), and push an update to the paid version that just posts an Intent to open the in-app purchase app (if it's installed) with some special arguments, to let you know they opened it via a paid app and do the right thing to set them up as having paid for it in-app. That opens yourself up to some detection problems though... (Solvable but kind of clunky)
You can keep the existing paid version and create another free version.
If you really don't want to have 2 versions, just make it free and tell users something like 'Contact us if you have bought the paid version. We will give you redeem code to unlock xxx'.
https://developer.android.com/distribute/tools/launch-checklist.html#decide-price
This link seems relevant, hope it helps
On Google Play, you can publish apps as free to download or priced. Free apps can be downloaded by any Android user in Google Play. Paid apps can be downloaded only by users who are in a country that supports paid downloads and have registered a form of payment in Google Play, such as a credit card or Direct Carrier Billing.
Deciding whether you apps will be free or paid is important because, on Google Play, free apps must remain free.
Once you publish an app as a free app, you cannot change it to being a priced app. However, you can still sell in-app products and subscriptions through Google Play's In-app Billing service.
If you publish your app as a priced app, you can change it at any time to be a free app (but cannot then change it back to priced). You can also sell in-app products and subscriptions.
If your app is be priced, or if you'll be selling in-app products, you need to set up a Google payments merchant account before you can publish.
I feel the most easy way is to use theese line of codes
This gives you the old version code
SharedPreferences prefs = getSharedPreferences("Name_of_Prefs", MODE_PRIVATE);
int oldVersionCode = prefs.getInt("version_code", -1);
This gives you the current version code
int currentVersionCode = getPackageManager().getPackageInfo(getPackageName(),0).versionCode;
Now you can compare and do what you want. Don't forget to update after every time
with this line of code
prefs.edit().putInt(PREF_VERSION_CODE_KEY, currentVersionCode).commit();
In my case (affirmations counter app)
my paid app is running based on sharepreference value "lastaffirmationcount"
in my new iap app i just changed the way of I'm saving the affirmations counter values like "lastaffirmationscount_foriap"
So what i did in my free with In app purchase app is,just cross checked the "lastaffirmationcount" value is not null,if its null then it means new user,if not null then it means he is old user who bought the paid app
so the old user will not suffer forever
(Optionally Once its checked i immediately ask this user to sign in with google and saved his email as a premium user to ur database)
For Google Play there's no distinction between having paid for an app or downloading it for free. For example, if an user download an app while it's free and it's later changed to paid that user will still have full access to it, even being able to download it on other devices.
There are some lame workarounds for that:
Enable google play game services on the paid version and try to convince users to connect to it. Use google play services to store "bought while paid" information to the cloud and restore it whenever that user logins
Give all the users who've bought some key to unlock features
Create a different for the free version of the game
That said, keep in mind that many games have become free after some time. Maybe the users won't mind it that much.

Distribute on Google Play to specific people

I would like to distribute the beta for my Android App to 10,000 specific people that signed up for the prerelease via the Play Store for free. Keeping in mind that the app will eventually be a paid application, is this specificity possible?
If your app has licensing enabled, you can add the people who should get it for free in a "whitelist" with their google play account , so that the app would appear as bought from the market. (i know it is possible but never did it... just google it)
After that you can distribute the apk through email (try http://thebetafamily.com/supersend/ )
and for the previously added accounts the licensing check will pass, and for other users the licensing check will fail if they did not bought the app from market.
This was just a suggestion, never had to do something like this , but thought this might help !
It's not possible. Google Play does not allow paid application to be given away for free (minimum price is ~$1).
You can do it other way:
Publish your application free
For premium features request some in-app payment
Implement in your application some piece of code to unlock premium features to specific users.
I have found a library for it: https://code.google.com/p/remoteunlockerlib/ But not sure if it works at this moment :)

Android Application Licensing Issue

Using the Android LVL for making the application licensed and paid is clearly given.
I still have doubts regarding the free trial , like if i give 30 days free trial but if user changes the date (puts a previous date on device). will it still be available for that total free 30 trial days or will it continue?
Any suggestions to handle that?
Another issue arises that if I want to give my application free of cost to some , how can that be handled if they download it from the google play / market?
There is no built-in support for trial usage in the Android LVL.
There is one way to give out paid apps for free while using the Android LVL and Google Play Store. Go to the Android Developer Console and then click Edit Profile. In the licensing and in-app billing section, enter the Google-associated email addresses of the users you want to give your app to in the "Test Accounts" section. Set the License Test Response to LICENSED. This will now allow you to send the same LVL-containing app APKs that you upload to the Google Play Store to reviewers without requiring them to purchase the app.
Two important notes on using this method:
Users in this list are given access to all of your paid apps and all in-app paid content for free.
If you are using a ServerManagedPolicy, the LICENSED response issued to Test Accounts has a very short license validity period (I believe 1 minute) and a maximum allowable retry count of 0.
The Google Play store does not support trials. You can implement it yourself by storing the usage start date somewhere. If you store it on the device, any user with a rooted device will be able to reset it. You can obfuscate it somewhat to make it harder. You can also store it on a server, but you need some info from the device to associate it with.
Giving apps for free is also not supported. You can develop it yourself if you have some sort of a server and use in-app purchases to enable premium features in a free app. If you want to use paid app, the only way is to actually send people the APK.

Categories

Resources