# contactpicker

Published articles for contactpicker.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Pick One Contact Without Asking for the Address Book

DevFeed: [Pick One Contact Without Asking for the Address Book](<https://devfeed.tech/articles/pick-one-contact-without-asking-for-the-address-book-19449.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/private-contact-picker/>)

Author: Shai Almog

Published: 2026-09-09T00:00:00Z

Content type: article

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [API](<https://devfeed.tech/topics/api.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Code](<https://devfeed.tech/topics/code.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [api](<https://devfeed.tech/tags/api.md>), [code](<https://devfeed.tech/tags/code.md>), [contactpicker](<https://devfeed.tech/tags/contactpicker.md>), [ios](<https://devfeed.tech/tags/ios.md>), [native](<https://devfeed.tech/tags/native.md>), [permission](<https://devfeed.tech/tags/permission.md>), [privacy](<https://devfeed.tech/tags/privacy.md>)

### AI overview

ContactPicker lets Codename One applications request selected contact fields through a system-owned picker without broad address-book permission. The article describes platform differences, limited fallback behavior, manual-entry handling, and more precise permission detection.

### Source excerpt

ContactPicker lets a Codename One application request selected contact fields through the system picker without broad address-book permission.

## Implement Android 17's Contact Picker

DevFeed: [Implement Android 17's Contact Picker](<https://devfeed.tech/articles/ditch-read-contacts-forever-android-17-s-secure-contact-picker-25981.md>)

Original publisher: [Read original article](<https://proandroiddev.com/ditch-read-contacts-forever-android-17s-secure-contact-picker-24c5c69b3b51?source=rss-711ab22c5c77------2>)

Author: Nav Singh

Published: 2026-06-07T19:28:49Z

Content type: tutorial

Language: en

Sources: [Stories by Nav Singh 🇨🇦 on Medium](<https://devfeed.tech/sources/stories-by-nav-singh-on-medium.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [implementation](<https://devfeed.tech/topics/implementation.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android17](<https://devfeed.tech/tags/android17.md>), [androidappdevelopment-usa](<https://devfeed.tech/tags/androidappdevelopment-usa.md>), [androiddev](<https://devfeed.tech/tags/androiddev.md>), [contactpicker](<https://devfeed.tech/tags/contactpicker.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [permission](<https://devfeed.tech/tags/permission.md>), [privacy](<https://devfeed.tech/tags/privacy.md>)

### AI overview

A tutorial on implementing Android 17's Contact Picker as a privacy-preserving alternative to READ_CONTACTS. It covers requesting contact data fields, launching the picker, handling result URIs, multi-selection, and compatibility behavior.

### Source excerpt

Image generated using Perplexity In this article, we will learn how to implement the new Contact Picker introduced in Android17. Contact picker | Android Developers Contact picker -- Android17 It is a standardized, browsable interface for sharing contacts. A privacy-preserving alternative to the READ_CONTACTS permission, the picker runs on Android 17 and higher. 🪦 READ_CONTACTS Permission 🪦 It grants apps full, persistent access to all contact data -- names, phone numbers, emails, etc -- after a one-time user approval (runtime permission). Protection level: dangerous ⛔ Apps specify which data fields they need, such as phone numbers or email addresses, and users select specific contacts to share. With built-in search, profile switching, and multi-selection capabilities, the app reads only the selected data, ensuring granular control. Implementation Intent Action: ACTION_PICK_CONTACTS We will be able to specify multiple data fields our app will need at once. We do this using Intent.EXTRA_REQUESTED_DATA_FIELDS, passing an ArrayList<String> of MIME types defined in ContactsContract.CommonDataKinds. MIME Types: //... ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE //...Define the ActivityResultLauncherval contactPickerLauncher = rememberLauncherForActivityResult( contract = ActivityResultContracts.StartActivityForResult() ) { result -> if (result.resultCode == Activity.RESULT_OK) { val uri = result.data?.data ?: return@rememberLauncherForActivityResult // Process the result URI.... processCPResultUri(uri, context) } }Launch the ContactPicker 📲 Define the intent val requestedFields = arrayListOf( ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE ) // Set up the intent val pickContactIntent = Intent(ContactsPickerSessionContract.ACTION_PICK_CONTACTS).apply { // Enable multi-select - true/false putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true) // Set limit of selectable contacts putExtra(EXTRA_PICK_CONTACTS_SE