Xamarin.Android app "READ_CONTACTS" permission always added automatically - android

My problem is that I do not want to set a privacy policy for my app, I would rather remove all of the unnecessary permission requests.
I have removed the "READ_CONTACTS" permission from my AndroidManifest.xml, but when trying to upload to Play Store, it always says:
The apk has permissions that require a privacy policy set for the app, e.g: android.permission.READ_CONTACTS. [403]
It seems to me, that "READ_CONTACTS" permission is always added automatically.
Is there a way to remove this?
I only use the following permissions:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

It was definitely a 3rd-party library issue.

Related

React-native Android app keeps rejecting because of new policies by google play console: sensitive informations

The app keeps rejecting because of new sensitive policies. In the manifest. I have included these three permissions:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />.
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />.
<uses-permission android:name="android.permission.RECEIVE_SMS" />
Any idea how to approve this?
I think you should add a privacy policy in the play store
Need to use Google SMS API instead of current react-native basic implementation.
https://developers.google.com/identity/sms-retriever

Google Play Console App Rejection APK REQUIRES VALID PRIVACY POLICY AND PROMINENT DISCLOSURE

My App got Rejected due to below Reason.
Your app is uploading users' Contact List information without a prominent disclosure. Make sure to also post a privacy policy in both the designated field in the Play Developer Console and from within the Play distributed app itself.
I have already added Runtime Permission for contacts in my app. Including required permission in Manifest as well.
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
I have also added Privacy Policy in Google Play Console with valid URL and content as well.
I am not getting how to tackle this issue and what changes should i apply to my APK to approved for go Live.
I also checked with other answers but it doesn't seem to be helping to overcome this issue.
Any help or clue would be appreciated.
You need to add a privacy policy to your Google Play listing.
In the Play Console Go to App Content > Privacy Policy (Click "Manage"). There you can insert your privacy policy URL.
In your privacy policy you will need to disclose what information you are collecting from your users and why.
Make sure you have added a screen in your app that links to the privacy policy and has an "accept privacy policy" button.
Your app needs valid Privacy policy - which should explicitly mention - Why you collect Contact list from user, How the data(contact list) will be used by your app.
Prominent disclosure - You need to present Dialog/Screen to end user who can understand better, Why & How Permission should be accepted by user and take consent before displaying Default Android permission dialog.
Video to explain Prominent disclosure here

Rejected app Issue: Violation of Permissions policy

I recently sumbitted an app for the Play store. The app got rejected and I have no clue as to how to fix it. The error is clear enough, but not the solution.
Issue: Violation of Permissions policy After reviewing your app, we found that it doesn’t qualify to use the requested permissions for the following reason(s):
Based on our review, we found your app’s expressed user experience did not match your declared core functionality {Default Phone handler (and any other core functionality usage while default handler)}. Please remove these permissions from your app.
Default handler capability was listed on your declaration form, but your app does not appear to have default handler capability. Please submit a revised declaration form.
I find the UI of the Google Play Store to be very confusing for me. They aren't answering any emails and I'm at a loss of what to do.
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.WRITE_CALL_LOG" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
If you're using any SMS or CALL_LOG related permission you need to submit a Permissions Declaration Form for your app.
This new policy is designed by Google to ensure that apps asking for these permissions have core functionality related to them and need full and ongoing access to the sensitive data in order to accomplish the app's primary use case.
Android Developers Blog SMS/Call Log Policy Changes
Please refer here to understand the details on policy
you face this error because of some critical permission in manifest file. e.g GET_ACCOUNTS,READ_PROFILE. So for this you have to mention privacy policy page url if you have website or create your own privacy policy using following link:
https://privacypolicygenerator.info/
Just to put it out there. I resolved this by removing the permissions and only rely on PHONE_STATE
for my purposes.

App permissions different on web and phone

Here's the two different Permissions on web vs play store.
Web
App Store
Ive looked at the build/intermediate.manifests folder. There's no EXTERNAL_STORAGE in the Manifest
Same for the outputs/logs/manifest-merger files.
BNelow is the merged manifest
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE"
/>
<permission
android:name="com.formulaone.production.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.formulaone.production.permission.C2D_MESSAGE" />
<uses-permission android:name="com.android.vending.BILLING" />
Is there any reason why this is different on web s app?
edit : Wrong permissions at Google Play
The app does use shared prefs, does that add the external_storage permission?
The Permission Request depends on many factors. Like if you're sending some data which requires storage permission, then you need to add READ_EXTERNAL_STORAGE permission
Also, the permissions on Web and Android varies
I think you are using wrong Android permissions
Here's a quick guide for Android Permissions

How to request all permission needed when the time user install the app in Google Play?

I have an Android app,but when user click "Install" button,the app install directly and it didn't prompt up to ask for permission for user to accept directly.So,I need to request permission during runtime.
But what I need to do,when user click "Install" button,request all the permission needed before the app start downloading from Google Play just like the image below:
So far my manifest is look like this
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
So what I need to add in order to achieve this?
You are welcome to have your targetSdkVersion below 23, which will force the request for permissions at install time.
Over time, seeing this permission dialog at install time will signal to prospective users that your app is obsolete and not being maintained. An increasing number of those prospective users will elect to not install your app as a result.
Also, bear in mind that users can still remove your requested permissions via the Settings app.
The runtime permissions was introduced since 5.0 Android.
The reason that most of users don't read permissions while installation.
So, all up-to-date API have to use runtime permissions.
Even default apps such as Google maps require runtime permissions.
https://developer.android.com/training/permissions/requesting.html
If you don't want to use runtime permissions you have to use old API version. but you have to check. Your app may crash.
For devices with android < 6.0 permissions are request at installation.
For devices with android > 6.0 permissions are request at runtime.
So if you want your app compatible with devices below and above 6.0, you need to declare permission in your Manifest.xml and request permission at runtime too.
The official guide

Categories

Resources