Wednesday, June 6, 2012

[android-developers] View contact based on contact id - not always shows the right contact

I query the phone's calllog into a ListView. So when the user long clicks an item, a dialog comes up with options, including "View contact". To be able to view the contact the intent needs the contact id. From the calllog I get the contact id by the phone number.
My problem is that I not always get to see the right contact. I click on Peter, and Peter's contact sheet comes up. I click on Sarah, and Jason's contact sheet comes up.

I must have been using this code the wrong way. Please help.

    ContentResolver contentResolver = getContentResolver();
   
    Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phone));
   
    Cursor cursor =  contentResolver.query(uri, new String[] {PhoneLookup.DISPLAY_NAME, PhoneLookup._ID}, null, null, null);
   
    if(cursor!=null) {
       while(cursor.moveToNext())
       {
      String contactName = cursor.getString(cursor.getColumnIndexOrThrow(PhoneLookup.DISPLAY_NAME));
      contactid2 = cursor.getString(cursor.getColumnIndexOrThrow(PhoneLookup._ID));
      }
      cursor.close();
    }
              
    Intent intent_contacts = new Intent(Intent.ACTION_VIEW, Uri.parse("content://contacts/people/" + contactid2));
     startActivity(intent_contacts);

Maybe what I need is not the PhoneLookup._ID, but some other ID.

 - on a HTC Desire HD (2.3.5) I get the proper contacts in 99% of the
   cases.
 - on a ZTE Blade (2.2) I get the proper contacts in 60% of the cases.
 - on a Samsung Galaxy Ace (2.3.3) I get the proper contacts in 5% of the cases.

What the hell is going on???

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

No comments:

Post a Comment