0
可能重複獲得暱稱:
How to look-up a contact's name from their phone number on Android?如何從電話號碼的Android
如何從電話號碼android.What得到的暱稱是用於內容提供商。
可能重複獲得暱稱:
How to look-up a contact's name from their phone number on Android?如何從電話號碼的Android
如何從電話號碼android.What得到的暱稱是用於內容提供商。
使用下面的代碼:
String [] projection = { ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME };
Cursor cursor =
this.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
projection, null, null, null);
if (cursor.moveToNext()) {
int displayNameIdx = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
String displayName = cursor.getString(displayNameIdx);
}
我不完全相信你所需要的顯示名稱,但你可以得到更多的細節,如果你使用ContactsContract.CommonDataKinds.StructuredName:
String [] projection = { ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME,
ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME };
String where = ContactsContract.Data.CONTACT_ID
+ " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?";
String[] whereParameters =
{ contactId, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE };
Cursor cursor =
this.getContentResolver().query(ContactsContract.Data.CONTENT_URI,
projection, where, whereParameters, null);
編輯:啊,現在我看到你想映射暱稱到一個電話號碼。這是你如何選擇CONTACT_ID出給定的電話號碼:
String [] projection =
{ ContactsContract.CommonDataKinds.Phone.CONTACT_ID };
Cursor phoneCursor =
this.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
projection, ContactsContract.CommonDataKinds.Phone.NUMBER + " = ?",
new String[]{number}, null);
int idIndex = phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID);
while (phoneCursor.moveToNext()) {
String id = phoneCursor.getString(numberIndex);
Log.i(LOG_TAG, "This is the contact id associatated with the given number" + id);
}
phoneCursor.close();
,但我已經打電話沒有像5551111000 – 2011-12-27 16:45:21
是的,正如我在回答的編輯提到的:你需要遍歷所有的聯繫人,並檢查所有他們相關的電話號碼。問題在於,Android中的信息是根據聯繫人id而不是電話號碼組織的。請記住,甚至有可能有多個聯繫人使用同一個電話號碼。 – 2011-12-27 16:47:28
但我有其他的解決方案來顯示電話號碼 – 2011-12-27 17:07:37