Home » Android » in app purchase – Do users have to grant the permission com.android.vending.BILLING on upgrade/install?

in app purchase – Do users have to grant the permission com.android.vending.BILLING on upgrade/install?

Posted by: admin June 15, 2020 Leave a comment

Questions:

I am planning to integrate Google Play in-app billing for one of my Android apps.

In order to use in-app billing, the permission com.android.vending.BILLING needs to be added to the AndroidManifest.

My question is, whether users have to grant this permission on install or upgrade?

I haven’t seen it for apps that are using it. So, I am just wondering if my update that includes the new billing permission will get rolled out without asking the user’s permission? The later usually means that older versions get stuck.

Regards,
Joerg

How to&Answers:

I used the alpha release mechanism of the Google Play Developer Console to test this on my own.

I can confirm that users WILL be prompted for the additional right. So, there is no automatic upgrade when adding in-app billing.

This is what the permission looks like in Google Play. (If it was new it would have the normal NEW: flag on it)

enter image description here

Answer:

In the general case, when an already-installed app has a new version with new permissions, auto-update will be disabled and the user will be required to update that app manually (i.e. press the update button). When updating manually, they will be told that there are some new permissions requested, and they will be given a choice of whether to accept (update the app) or cancel (do not update).

If the billing permission triggers this, are you worried that users won’t actively update and thus get ‘stuck’ on the old version? I think users are already well-accustomed with granting new permissions, particularly if it is unrelated to disclosing their personal information (contacts list, etc). You could also explain why you require particular permissions in the app description.

You may have seen something like the following screenshot when dealing with other apps:

enter image description here

When installing an app that requires Google Play In-App Billing for the first time, the relevant billing permissions will also be displayed.

Here is an screenshot of the dialog displayed when installing Evernote (which makes use of in-app billing):

enter image description here

Note the ‘Google Play billing service’ text under ‘Network communication’.

Answer:

No, users will not be prompted to accept this permission. Please see OPs answer.

"com.android.vending.BILLING" is required to communicate with Google Play app, as such any application can declare a permission and require other apps to have that permission for inter-communication or using API’s provided by that application/service.

Updating Your Application’s Manifest

In-app billing relies on the Google Play application, which handles all communication between your application and the Google Play server. To use the Google Play application, your application must request the proper permission. You can do this by adding the com.android.vending.BILLING permission to your AndroidManifest.xml file. If your application does not declare the In-app Billing permission, but attempts to send billing requests, Google Play will refuse the requests and respond with an error.

To give your app the necessary permission, add this line in your Android.xml manifest file:

<uses-permission android:name="com.android.vending.BILLING" />

Please see Declaring and Enforcing Permissions for further reading.

Hope this helps.

Answer:

This is a old question, we ran into similar situation recently, Our app is already in market and we needed to push a new version with just one new permission i.e Billing. We had thought auto update wouldn’t happen and user would need to manually update. Though our tests both PRE API 23(Marshmallow) and API 23 showed that our app Auto updated without any issues using the Alpha channel.

Thus for Upgrade if you only BILLING permission (Which isn’t a system permission) upgrade should be fine