【发布时间】:2011-06-29 11:41:00
【问题描述】:
我已经尝试获取联系人的昵称几个小时了,但仍然无法让他们工作,我被告知他们与电话号码等在不同的表中。但我不知道如何访问它们。
我得到的最接近的是这个..
Cursor cursor = context.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, ContactsContract.Contacts._ID +" = ?", new String[]{String.valueOf(recordId)}, null);
while (cursor.moveToNext()) {
Cursor nickname = context.getContentResolver().query( ContactsContract.Data.CONTENT_URI, null, ContactsContract.CommonDataKinds.Nickname.CONTACT_ID +" = "+ recordId, null, null);
while (nickname.moveToNext()) {
try {
String nicknameName = nickname.getString(nickname.getColumnIndex(ContactsContract.CommonDataKinds.Nickname.NAME));
String nicknameType = nickname.getString(nickname.getColumnIndex(ContactsContract.CommonDataKinds.Nickname.TYPE));
switch (Integer.valueOf(nicknameType)) {
case 1: nicknameType = "TYPE_HOME"; break;
}
list.add(new KeyValue("Nickname:" + nicknameType, nicknameName));
} catch (Exception e) { continue; }
}
nickname.close();
}
这会获取联系人的所有数据以及类型,例如:Thomas Owers 1 这很好,但它没有告诉我数据是什么,所以它给出了电子邮件、电话、姓名、昵称但我无法区分它们。
任何帮助将不胜感激,谢谢! :)
【问题讨论】: