Really appreciated!!!  I tried and worked.
Here is the original query I used for 1.6:

                String[] PROJECTS = new String[] { People._ID,
People.DISPLAY_NAME,
                                People.NAME, People.NUMBER, 
People.PRIMARY_EMAIL_ID };
                Cursor cursor = getContentResolver().query(People.CONTENT_URI,
                                PROJECTS, null, null, People.NAME);
                startManagingCursor(cursor);

                if (cursor == null) {
                        return;
                }

                if (!cursor.moveToFirst()) {
                        cursor.close();
                        return;
                }

                int mIdIndex = cursor.getColumnIndex(People._ID);
                int mNameIndex = cursor.getColumnIndex(People.DISPLAY_NAME);
                int mNumberIndex = cursor.getColumnIndex(People.NUMBER);
                int mEmailIdIndex = 
cursor.getColumnIndex(People.PRIMARY_EMAIL_ID);

                HashMap<Long, Contact> hash = new HashMap<Long, Contact>();
                try {
                        do {
                                long id = cursor.getLong(mIdIndex);
                                String name = cursor.getString(mNameIndex);
                                String phone = cursor.getString(mNumberIndex);
                            }
                     }
                }
          }

-- Henry

On Nov 13, 12:19 pm, Rachel Blackman <[email protected]> wrote:
> On Nov 13, 2009, at 3:33 AM, Jeff Sharkey wrote:
>
> > Could you paste the exact query() that is returning empty for you?
>
> > Since all data is now stored in a single table you should be able to
> > query on Data.CONTENT_URI and filter by Data.MIMETYPE to match the two
> > types you're looking for.
>
> I honestly get the feeling that the new 2.0 contacts API could use better 
> documentation.  I've had my own little issues to sort out, and a lot of my 
> working with the ContactsContract API seems to be writing tiny test programs 
> to figure out 'okay, is THIS how this works...?  No...?  Hrm... okay, how 
> about... no, well, that broke everything.  Let's rebuild the emulator...'
>
> However, to share with the original poster, here's my best in-the-mail-client 
> attempt at a quick bit of 'let's read all the phone numbers and emails for 
> each contact.'  (I'm sure if I mucked this up, someone else can post a 
> corrected one.)
>
> ----
>         // Let's walk our address book.  I apologize for any typos, since 
> this was
>         // written in an e-mail client, rather than an editor!  Hopefully I 
> did
>         // get this right...
>         //
>         Cursor cursor = 
> getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
>                                                     null, null, null, null);
>         while (cursor.moveToNext()) {
>             String contactId = cursor.getString(cursor.getColumnIndex(
>                                             ContactsContract.Contacts._ID));
>             String hasPhone = cursor.getString(cursor.getColumnIndex(
>                                             
> ContactsContract.Contacts.HAS_PHONE_NUMBER));
>
>             if (Boolean.parseBoolean(hasPhone)) {
>                 // We have a phone number, so let's query this:
>
>                 Cursor phones = getContentResolver().query(
>                           ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
>                           null,
>                           ContactsContract.CommonDataKinds.Phone.CONTACT_ID 
> +" = "+ contactId,
>                           null, null);
>
>                 while (phones.moveToNext()) {
>                     // Get the phone number.  If your contact has combined 
> several
>                     // raw contacts, you might get a duplicated number. (I 
> think?)
>                     //
>                     String phoneNumber = phones.getString(
>                                             phones.getColumnIndex(
>                                                     
> ContactsContract.CommonDataKinds.Phone.NUMBER));
>
>                     [ ... do something with phone number here ... ]           
>                          
>                 }
>                 phones.close();
>             }
>
>             Cursor emails = getContentResolver().query(
>                     ContactsContract.CommonDataKinds.Email.CONTENT_URI,
>                     null,
>                     ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " 
> + contactId,
>                     null, null);
>
>             while (emails.moveToNext()) {
>                 // Like phone numbers, if your contact has combined several
>                 // raw contacts, you can get the same e-mail address more than
>                 // once.
>                 //          
>                 String emailAddress = emails.getString(
>                                         emails.getColumnIndex(
>                                                 
> ContactsContract.CommonDataKinds.CommonDataColumns.DATA));
>
>                 [ ... do something with the address ... ]
>             }
>             emails.close();
>         }
>         cursor.close();

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to