1
我有一個Android聯繫人列表,我試圖檢索給定的名稱,中間名和姓氏。我能夠檢索包括電子郵件和電話號碼在內的其他信息,但是當我查詢聯繫人名稱部分的內容解析程序時,我總是得到空值(即使moveToNext()正在執行,也就是說從系統中檢索到一條記錄)。查詢聯繫人的結構化名稱返回null
相關代碼:
String id = "Some ID";
// Perform a query to retrieve the contact's name parts
String[] nameProjection = new String[] {
ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME,
ContactsContract.CommonDataKinds.StructuredName.MIDDLE_NAME,
ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME
};
Cursor nameCursor = mContext.getContentResolver().query(
ContactsContract.Data.CONTENT_URI,
nameProjection,
ContactsContract.CommonDataKinds.StructuredName.CONTACT_ID
+ "=?", new String[] { id }, null);
// Retrieve the name parts
String firstName = "", middleName = "", lastName = "";
if(nameCursor.moveToNext()) {
firstName = nameCursor.getString(nameCursor.getColumnIndex(
ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME));
middleName = nameCursor.getString(nameCursor.getColumnIndex(
ContactsContract.CommonDataKinds.StructuredName.MIDDLE_NAME));
lastName = nameCursor.getString(nameCursor.getColumnIndex(
ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME));
}
這塊代碼執行後,字符串是空,但不拋出任何異常。我手動檢查了幾個聯繫人,他們都填有名字,中間名和姓氏。
我在這裏做錯了什麼?