If an application changes its permissions, the Android market will generally mark it for manual update. Is this true if the change is only to remove a permission that was previously required by an app? Or will any change to the permissions mark the app for manual update?
EDIT
I tried it out today. Removed a permission from the app and put it up on the market. I had also ticked the 'auto update' feature in the mkt page. Although it did not automatically update the app, it did not say 'manual update' in the mkt page.
Removing permissions does not prevent auto-upgrades.
Adding a permission might prevent auto-upgrade, but not all permissions do. A good heuristic is to look at the protectionLevel of the permission; "dangerous" permissions will prevent auto upgrade, "normal" in general will not, but it's good to test with a small test bench app.
Third-party permissions are typically "normal" or "signed", and "signed" are treated same as "normal" with regards to auto upgrade.
Also, as of v4.1.6 Google Play app does show apps that require manual acceptance of new permissions in a separate "Manual Update" section. They are listed along all other updates, and the GP app will just show the new permissions dialog when user tries to update them.
Related
I am adding PACKAGE_USAGE_STATS permission to my app. Since this is a special permission that the user needs to grant from a special settings page, I would not expect it to appear in the Google Play permission list when they install the app - and thus I expect it not to enforce manual update for my app. Will it enforce manual update for my app or it will allow auto update for existing users?
Adding a permission will cause, that users will have to update the app manually.
All the permissions, which are in your manifest file are listed on Google Play.
Doesn't matter if it's runtime permission or not.
I am about to add the PACKAGE_USAGE_STATS permission to my app. Since this is a special permission that the user needs to grant from a special settings page, I would not expect it to appear in the Google Play permission list when they install the app - and thus I expect it not to enforce manual update for my app.
Will it enforce manual update for my app?
On a more general note - how can I test this? I can do it with alpha/beta groups, but there has to be a better way.
I am working on an app where I am using a custom permission as defined by another developer in their SDK.
According to Google, if we add a pre-defined permission, such as <uses-permission android:name="android.permission.INTERNET" />, then, when a user updates the app, they will be prompted to approve this new permission. This happens before the app is updated; if the user does not accept, the app is not updated.
Now, we want to add in this custom permission. Will the Play Store still ask users to accept this new permission prior to updating the app when we release the new version on the Play store?
Yes all permissions are required to be approved by the user. If the updated version has new permissions : grouped or others, they need to be approved by user.
From Google's policies:
Users who wish to have full control over new individual permissions being added to an app can review individual permissions for an app at any time, or may consider turning off auto-updates for one or more apps. Any permissions that are not part of a permissions group, including those that are not shown in the main permissions screen, will be shown in the "Other" group.
Update
From M the permission model will change. Users will control the permissions at runtime. Good for users but more work for developers, as now we have to handle the permission denial. Read more here.
When people download your app they have to accept the permissions that you set in your manifest.
If you set a new permission in the android manifest of your app, then people who have downloaded your app will need to accept the new permission first. So if you update your app and you have new permission it won't auto update and people need to first accept it in the google play store.
From Google's support page:
When an app updates, it may need to use additional
capabilities or information controlled by permissions.
If you have automatic updates enabled, you won't need to review or
accept these permissions as long as they are included in a permissions
group you already accepted for that app.
If the app needs access to an additional permissions group, you'll be
asked to accept the update, even if you've set an app to update
automatically.
If you prefer to review each update manually, you can change your
update settings.
Yes, Google play will ask users to approve custom permissions.
Google clearly mentions that
"If the app needs access to an additional permissions group, you'll be asked to accept the update, even if you've set an app to update automatically."
and
"Developers may automatically add additional permissions within each group"
Since custom permissions do not belong do any permission group, they are shown in other permissions and when updating an app if new permissions are added to others group, play store will ask users to approve those permissions.
Official Source: https://support.google.com/googleplay/answer/6014972 (open link and click on other)
This page says "Note: If an app adds a permission that is in the "Other" group, you'll always be asked to review the change before downloading an update."
I am curious if it is possible to change an App's access permissions using an in-app purchase?
The App I am developing has access to network / internet and advertising.
To improve user's privacy, there will be an in-app purchase option that will disable ads and remove network / internet support.
I know that I could do a separate app entirely, but I'd prefer to keep it within the same app.
I have searched and cannot find a solution to my particular use case.
Thanks.
If you use an in-app purchase it isn't gonna change any permissions. Permissions are set on the manifest and is not changeable.
The only way to change permissions is with an upgrade to a newer version, as #SuperThomasLab pointed out, the permissions are in the manifest and set in stone for that version.
Google has very strict requirements that the user needs to be informed of any permission changes on each upgrade, so there is absolutely no way to change the permissions that the user agreed to the last time they installed your app.
You can add functionality to disable the code that uses any network/internet, even if the permission is still there.
As for removing ads, see this post: In-App Purchase remove ads
I have an app in the Play store, but I want to add a user permission to the next release. Does the phone throw up the app permission screen for the added permissions?
Usually, the app permissions don't change and it is autoupdated or manually updated in a single step. But what happens when you add permissions? I've tried to Google it but can't find an answer.
(I realize this is not a code question, but it surely must be an important one for Android developers faced with this problem).
Does the phone throw up the app permission screen for the added permissions?
Yes. However, it shows all permissions, with the new ones highlighted with the word "New".