2

I am trying to allow the user to select a contact's phone number by using the default system contact selector. Min SDK is 11 and target is 19, this is the code I'm using the bring up the contact selector:

Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
this.startActivityForResult(intent, 1);

This works and does bring up the contact selector activity. The problem is that this has different behavior based on the phone you're on. I understand this and that's okay, but there's one issue that I feel is a problem for the end user of the app. Here is how this works on two different phones:

Samsung Galaxy S2 running Cyanogenmod 10: Opens the contact selector activity and displays every single phone number for all contacts, so if a user has 2 phone numbers it would look like this

702-555-1212 Mobile Contact1Name
702-555-4321 Work   Contact1Name
702-555-8879 Work   Contact2Name

Samsung Galaxy S5 running Android 4.4.4: Opens the contact selector activity and displays only one entry per contact, regardless of how many phone numbers are tied to a contact. It looks like this

Contact1Name
Contact2Name

With the S5, it automatically selects the first or default phone number if there are multiple numbers for that contact. How can I get the S5 to behave like the S2 and show me every number for the user to select? I'm hoping I don't need to write my own contact selector activity.

NOTE: This answer, Selecting a number from user with multiple numbers when using the contact picker, is almost exactly what I'm doing but it does not work as expected between the two phones I've tested.

Community
  • 1
  • 1
vane
  • 2,125
  • 1
  • 21
  • 40

0 Answers0