My app needs email recipients for sending messages. Today I read all email addresses and ofder them in an auto-complete dialog. Now I wanted to upgrade Android SDK to API level 37 and follow the new google advise to remove READ_CONTACTS permission from here: https://support.google.com/googleplay/android-developer/answer/16935362?hl=en
Unfortunately, this only works for people using Android 17 or newer. And it is not backported for previous versions. My app still has to serve devices down to Android 10. So, even if I switch in my app, I still have to keep the READ_CONTACTS permission to follow my own legacy path. With the Intent.ACTION_PICK intent, I have to require READ_CONTACTS in my Manifest. And the user experience is not good (no multi selection, no filter to email contacts only and no selection about which email of the contact to use).
How do you deal with this? Should I stay with API level 35 (Android 15) and keep my initially described behaviour?
> Apps that target Android 17 or later (API level 37+) may only request the READ_CONTACTS permission if the Android Contact Picker is not sufficient for your app to provide core functionality.
According to your description the Contact Picker is not sufficient, so you can still request the permission. If you want to change it however you can only request the permission with lower android versions using the following snippet:
<uses-permission
android:name="android.permission.READ_CONTACTS"
android:maxSdkVersion="36" />
Thomas