I'm updating an app that doesn't need to use the camera or to record audio. I've removed the permissions from the manifest but the upload fails with
Your APK or Android App Bundle is using permissions that require a
privacy policy: (android.permission.CAMERA,
android.permission.RECORD_AUDIO).
I can see in generated manifests that the permissions get "injected".
This hasn't worked:
<uses-permission android:name="android.permission.CAMERA" tools:node="remove"/>
How do I stop that, or how do I tell the app that I will never, ever, ever want to use the camera?
Related
Google Recently Deleted my app because of new rules for location privacy.
I am using Mapbox library for maps and I have ACCESS_FINE_LOCATION permission, When I Upload new generated app to google play it says my app use background location and force me to the privacy tab for more information,
i dont have any BACKGROUND_LOCATION permission and doesn't use this feature , and all of my usages is for selecting user current location via map.
Still, google says I use background location.
BTW :
use this code to remove permission even it does not exists :
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" tools:node="remove" />
and still having problems.
what should I do?
I don't need background location permission and don't use it.
You can go to Merge Manifest tab in Android Studio to know the origin of permission.
refer to: Manage manifest
Most probably that Mapbox asking for this permission and you should exclude a feature to disable it.
I had the same issue.
My flutter app has 2 AndroidManifest.xml files:
profile/AndroidManifest.xml
main/AndroidManifest.xml
When I added permission removal to the profile/AndroidManifest.xml, nothing has changed. But after extending the main/AndroidManifest.xml file, Google Play Console stooped showing the ERROR and I was able to publish my app with Mapbox component again.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="...">
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" tools:node="remove"/>
I installed a new application to release it to the play console. I installed Apk. First, I uploaded it to the open beta channel, but it always seems to be under review.
Later, after installing each apk, I get an e-mail about application permissions, they say that they do not comply with their privacy and sensitivity policies.
These appear in the permissions required by apk on the play console:
android.permission.ACCESS_NETWORK_STATE, android.permission.INTERNET, android.permission.READ_EXTERNAL_STORAGE, android.permission.WAKE_LOCK, android.permission.WRITE_EXTERNAL_STORAGE, com.google.android.c2dm.permission.RECEIVE
This is the content of mail:
Requested permissions do not match core functionality of the app
You declared Select Carrier Services and Device Automation as the core functionality of your app. However, after review, we found that your app does not match the declared use case(s). Learn more about permitted uses and exceptions.
Please either:
Make changes to your app so that it meets the requirements of the declared core functionality or,
Select a use case that matches your app’s functionality
Sensitive permission
Your app does not qualify for use of the requested permissions. Permission requests should make sense to users. You may only request permissions that are necessary to implement critical current features or services in your application. You may not use permissions that give access to user or device data for undisclosed, unimplemented, or disallowed features or purposes.
This is the my AndroidManifest.xml and permissions:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
If anyone has an idea or can help I would be very glad.
Although I changed it 8 times and installed the apk, I did not get approval for how many days and I constantly receive the mail I sent the content above, every time I send an apk..
Can someone tell me where in the docs it goes over how to ask for permissions to access the file system or other media?
If an app doesn't ask for permission during installation, this means it does not have permissions to ask for any data other than its own isolated storage space?
Permissions
If you're using Android 5.1 or lower all the permissions your app requires have to be declared on the AndroidManifest.xml file. As you can see on the docs.
Example:
<manifest xlmns:android...>
...
<uses-permission android:name="android.permission.INTERNET" />
<application ...>
...
</application>
</manifest>
If you didn't declare a permission on your manifest file, it was impossible to request a new one after installation, unless you updated your app requestion new permissions.
But that changed on Android 6.0 (API Level 23), where you can request permissions at runtime.
From the docs:
Beginning in Android 6.0 (API level 23), users grant permissions to
apps while the app is running, not when they install the app. This
approach streamlines the app install process, since the user does not
need to grant permissions when they install or update the app. It also
gives the user more control over the app's functionality; for example,
a user could choose to give a camera app access to the camera but not
to the device location. The user can revoke the permissions at any
time, by going to the app's Settings screen.
So instead of asking for all permissions on app install:
Starting from Android 6.0, permissions can also be requested like this:
For more information, check the training guide or this link.
File access
If you want to have write access the external file storage, you have to declare a permission for that, as it's stated on the docs.
To write to the external storage, you must request the
WRITE_EXTERNAL_STORAGE permission in your manifest file.
Example:
<manifest ...>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
...
</manifest>
And if you just want to read it, all apps already have that ability, but it might change in the future, so it's better to use this permission instead:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Every thing you need to know about system permissions is located here in the documentation :
Working with System permissions
Starting at API 23 (Marshmallow), the system will not ask permission at install time but at runtime when the developer thinks the permission is needed.
I've created a mobile game for iOS and Android that uses chartboost plugin to show advertisement and AdMob as well.
The thing is that I've created some permissions in the AndroidManifest in order to make this plugins work and one of this permissions is READ_PHONE_STATE which is asking for permission to read the call information to those who install the game. I don't like this because could generate distrust among users.
I've tried to delete the line that asks for this permission but when I do it the game crashes at the beginning, so, is there any way to remove this permission? Or do I have to keep it if I want to show advertisement?
I'm not sure about the chartboost plugin but I have created my own AdMob plugin and the only permissions that are required in the AndroidManifest file are:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
This is when using Google Play services rather than the AdMob SDK.
I am making an Android Phonegap/Cordova app which uses the Media Class found here: http://docs.phonegap.com/en/2.9.0/cordova_media_media.md.html
It says that the Media class requires the following permissions:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
When I add these permissions to my app/AndroidManifest.xml file the audio and app works perfect. If I remove all the permissions the app still works perfect on my Android device. My question is has Phonegap changed the required permissions? Are any permissions required for a Phonegap app to work on all devices? Thanks.
which version of phonegap are you using? with phonegap 3.x the permissions are automatically added by the plugin.
Permission are not specific to phonegap but are relative to android. When you set permissions in androidmanifest.xml, when a user installs an app, he will be notified of the required permissions and if you do not require the permissions, there are some operations your app will not be able to perform.
You can use the media plugin without requiring the permissions, it will work fine as long as you do not try to perform operations that require permissions : you will be able to play audio but not to record.