我正在使用此代码返回用户拥有的联系人。但是我希望将此代码转换为仅显示在联系人选择中选择的联系人。
@Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
ContentResolver cr = getContentResolver();
getContacts(cr);
}
public static void getContacts(ContentResolver cr) {
String number = null;
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if (cur.getCount() > 0) {
while (cur.moveToNext()) {
// read id
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
/** read names **/
String displayName = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
/** Phone Numbers **/
Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[] { id }, null);
while (pCur.moveToNext()) {
number = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
String typeStr = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
}
pCur.close();
Log.e("NAME", displayName + number);
}
}
}
}
我如何转换此代码以使其返回所选联系人而不是所有联系人?
答案 0 :(得分:1)
您也可以在SO How to call Android contacts list?上使用回复此旧帖子中包含的示例。 SQRFV的观点很明显,我们缺少布局上下文,用户可以选择首先查看和选择联系人。
答案 1 :(得分:0)
您在哪里存储所选联系人?这种方法只是查看手机上的联系人列表 - 没有存储或菜单值的概念。您正在使用此活动的布局代码是什么?
如果您拥有布局中的联系人,或者您通过其他方式传递了联系人,则可以在手机上直接查询以检索此数据。请参阅:http://developer.android.com/resources/articles/contacts.html,尤其是Loookup URI部分。