2013-05-01 77 views
0

我有一个字符串内容// com.android.contacts/contacts/contacts/2即后用户选择了一个特定的号码。Android联系采摘Uri

从这个字符串,我如何得到这个特定联系人的电话号码?

我是android环境的新手,所以我的问题可能看起来有点原始。

Cursor c = (Cursor)mAdapter.getItem(a.keyAt(i)); 
Long id = c.getLong(c.getColumnIndex(ContactsContract.Contacts._ID)); 
contacts.add(ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, id)); 

chosenContacts = sb.toString(); 

chosenContacts是我的字符串,并包含内容// com.android.contacts /联系人/联系人/ 2

+0

你的字符串是否包含一个数字,如String str =“asdsad 999999999”;? – Raghunandan 2013-05-01 14:04:55

+0

我做了更改..我现在需要从中获取电话号码..我该怎么做? – Hermoine 2013-05-01 14:10:15

+0

检查链接http://stackoverflow.com/questions/4613104/how-to-retrieve-contact-name-and-phone-number-in-android – Raghunandan 2013-05-01 14:11:45

回答

0

你需要第二个请求。您可以使用片段的ID吧:

 Cursor phoneNoCursor = contentResolver.query(
      Data.CONTENT_URI, 
      new String[] {Phone.NUMBER, Phone.TYPE, Phone.LABEL}, 
      Data.MIMETYPE + " = ? AND " + Data.CONTACT_ID + " = ? ", 
      new String[] {String.valueOf(Phone.CONTENT_ITEM_TYPE, id)}, 
      null); 

对于可能的类型的列表,请参阅Phone class的描述。但是,无论如何,这个号码本身和它的标签就足够了。