Thank you for shedding a light the deprecation. It was the root of the problem. The correct line is:
Intent intent_contacts = new Intent(Intent.ACTION_VIEW, Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, String.valueOf(contactid26))); Thanks again! Balint On Wednesday, June 6, 2012 6:47:13 PM UTC+2, svins wrote: > > Contact ids are not stable. To address a contact you need a contact > lookup uri. Your can build one or example with this function: > > http://developer.android.com/reference/android/provider/ContactsContract.Contacts.html#getLookupUri(long, > > > java.lang.String) > > After you can pass it to the contacts app. > BTW content://contacts/people/ is deprecated. > > On 6 June 2012 11:34, Balint wrote: > > 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+unsubscr...@googlegroups.com > > For more options, visit this group at > > http://groups.google.com/group/android-developers?hl=en > -- 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+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en