# Google Play: Contacts Permission policy (READ_CONTACTS)

> Google Play now limits READ_CONTACTS to apps where the Contact Picker is not enough. Fill in the declaration, or remove the permission and use the picker.

Canonical: https://app369.com/fix/google-play-contacts-permission/
Last updated: 2026-11-10

Google Play’s Contacts Permission policy limits READ_CONTACTS for apps that target Android 17 (API level 37) or later. Apps may keep it only when the Android Contact Picker is not enough for the app’s core functionality, and Play Console asks those apps for a declaration.

**Short answer**

Find every feature that reads contacts. If the user only picks one or a few contacts, such as to invite, share or pay someone, switch to the Contact Picker with Intent.ACTION_PICK_CONTACTS and remove READ_CONTACTS from the manifest. Keep the permission only for core features such as contact management or backup, and explain in the Play Console declaration why the picker is not enough.

Rather not fix it yourself? [**App Fix Ticket**](https://app369.com/fixed-price/flutter-firebase-bug-fix/) starts with a fixed-price diagnosis, then a fixed price for the fix before any fix work.

## **Why Google Play flags READ_CONTACTS, and the fix**

1. 01 ### **The app reads all contacts to invite or share**
  > “only request the READ_CONTACTS permission for sharing files, collaborating, inviting/referring someone to join a service, choosing a contact to transact with, typically should not request the permission.” [**Google Play, Contacts Permission (FAQ)**](https://support.google.com/googleplay/android-developer/answer/14115180?hl=en) Inviting a friend, sharing a file or picking someone to pay only needs the contacts the user chooses. Google says these apps typically should not request the permission, so use the Contact Picker instead.
2. 02 ### **The app keeps the permission with no declaration**
  > “may only request the READ_CONTACTS permission if the Android Contact Picker is not sufficient for your app to provide core functionality.” [**Google Play, Contacts Permission**](https://support.google.com/googleplay/android-developer/answer/14115180?hl=en) Apps that carry READ_CONTACTS are asked in Play Console either to submit a declaration or to remove the permission. After the compliance date, apps that target Android 17 or later and do not comply are subject to enforcement, and only apps that pass the access review keep the permission.
3. 03 ### **A custom contact list is treated as a reason**
  > “This does not qualify as a reason to retain Contacts access.” [**Google Play, Contacts Permission (FAQ)**](https://support.google.com/googleplay/android-developer/answer/14115180?hl=en) Building your own contact screen does not justify the permission. Google says a custom picker does not qualify, so replace it with the system Contact Picker.
4. 04 ### **A library adds the permission** Also check: an SDK or plugin can merge READ_CONTACTS into the final manifest even if your own code never asks for it. Open the merged manifest in the release build, and remove the permission with tools:node="remove" if no core feature needs it.

Checked against the vendor’s docs on November 10, 2026: [Google Play Help: Permissions and APIs that access sensitive information (Contacts Permission)](https://support.google.com/googleplay/android-developer/answer/14115180?hl=en).

## **Rather hand it over?**

Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.

- [from $450**App Fix Ticket**One reproducible bug in an existing mobile or web app, diagnosed and fixed.**See scope and start**](https://app369.com/fixed-price/flutter-firebase-bug-fix/)

[**All 127 Fiverr reviews**](https://app369.com/reviews/)

Related: [**Google Play Photo and Video Permissions**](https://app369.com/fix/google-play-photo-video-permissions/) · [**Google Play SMS and Call Log permissions**](https://app369.com/fix/google-play-sms-call-log-permissions/) · [**Google Play Data safety form rejected**](https://app369.com/fix/google-play-data-safety-form-rejected/) · [**Google Play QUERY_ALL_PACKAGES**](https://app369.com/fix/google-play-query-all-packages-permission/)

Questions

## **More on this launch**

<details>

<summary>**When does the policy become mandatory? **+</summary>

Google lists January 27, 2027 as the date compliance is mandatory for apps that target Android 17 or later, with a 30-day automatic self extension in Play Console.

</details>

<details>

<summary>**Does the Contact Picker work on older Android versions? **+</summary>

No. Google says the Android Contact Picker only exists for Android 17 or later and is not backported.

</details>

<details>

<summary>**Can you fix it for me? **+</summary>

If one bug is the whole problem, the App Fix Ticket covers it: a written diagnosis first, then the fix. If the app has more going on, the Launch Check is a written check of the whole app. Each issue found is rated critical, high, medium or low, with where it is and how it was confirmed. No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way. This applies to the first 10 Launch Checks bought after October 30, 2026.

</details>

Something else?

## **Describe it and get a written quote**

Describe the app and where it is in the launch. You get a written scope, a fixed price and a timeline; Simon replies by email, usually within one business day.

[**Describe your problem **→](https://app369.com/contact/) [**All fixes**](https://app369.com/fix/)