views:

366

answers:

1

I want to show the user a flattened pick list of all their contacts phone numbers and it must work from versions 1.6 up. I have read the related questions on SO and the Android documentation for Eclair (http://developer.android.com/resources/articles/contacts.html#legacy).

The problem is, even splitting my code into a factory class and specific implementations does not work for me because using Contacts.CONTENT_URI only shows contacts not individual numbers. What I need is this for version 1.6

 Intent intent = new Intent(Intent.ACTION_PICK, Phones.CONTENT_URI);
   startActivityForResult(intent, REQUEST_PICK_CONTACT);

And the equivalent for 2.0 and above.

Even if I get their example to work, by building against the 2.1 API am I not stopping my app being visible on the Market to users with earlier versions of the OS? I can't launch it against a 1.6 emulator, for example.

A: 

As per the Documentation contacts class has been depreciated, instead of that you have to use ContactsContract class(http://developer.android.com/reference/android/provider/ContactsContract.html) to read the contacts. A perfect example is found at http://stackoverflow.com/questions/1721279/how-to-read-contacts-on-android-2-0

Vamsi
Thanks. I had already read that article but I want the equivalent of the code I posted which displays a native activity that shows a flattened list of phone numbers only, without email or any other contacts. Two problems: how to display that activity and how to deploy an app that targets 2.0+ to market users on 1.6 (and to the 1.6 emulator).
Rob Kent