PACKAGE_USAGE_STATS permission's effect on auto-update - android

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.

Related

Enabling phone permissions without alerting the user to enable during runtime in Xamarin forms

I want to enable phone permission by default for an Android application. On checking multiple posts I see that it is getting added up at runtime explicitly by user during installation. Can I avoid it and enable it by default?
I am adding the permission READ_PHONE_STATE in Android Manifest. But this doesn't enable it by default unless and until the user goes to the setting and enable it manually.
Permission needs to be requested from the user. If you try to use the feature without permission, it will crash the app. The permission needs to be in the manifest and you need to request permission from the user as well. There is no way to do it automatically.
Side note: I believe this permission specifically is under higher scrutiny when submitted to the Play Store. The announcement they sent last year mentioned that you'll only be able to use this permission if you provide a valid reason such as making an alternative dialer app.

Does PACKAGE_USAGE_STATS permission effect auto update?

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.

How to Hide the Android Manifest Permissions

is there any way for hide the android manifest Permissions for some reasons and user couldnt see during installing the app?
Taken from the support page from Google Play:
Google Play shows you which permission groups an app will be able to
access. This information can help you decide whether you want to
install the app.
The whole sole purpose of those permissions is for people to see what your app can access and decide whether they want to share (all) that information with you.
In Android L and lower, this is impossible. If you do not ask for a permission, you will get a crash when you try to access the thing that needs permission. Thus, you cannot hide permissions from users.
In Android M, the whole permission idea is changed: instead of asking for lots of permission at the install, the app is installed without permissions, and when you need a specific permission, for example for camera, the user will have the option of accepting or declining the permission. Thus, the user will have a clearer view of what a permission is asked for.

Does Google Play ask to accept custom permission as like in built permissions in case of auto update

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."

Permissions changes requiring manual update

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.

Categories

Resources