您好我目前正在嘗試與我正在處理的應用程序實施WhatsApp。我希望能夠顯示用戶連同其電話號碼的所有WhatsApp聯繫人。到目前爲止,我已經能夠獲得他們的WhatsApp聯繫人的姓名,但是我一直無法獲取他們的WhatsApp聯繫人的電話號碼,下面是我用來獲取用戶WhatsApp聯繫人列表的代碼。如何獲取什麼應用聯繫人的電話號碼
cursor = cr.query(ContactsContract.RawContacts.CONTENT_URI, new String[] {
ContactsContract.RawContacts.CONTACT_ID, ContactsContract.RawContacts.DISPLAY_NAME_PRIMARY
}, ContactsContract.RawContacts.ACCOUNT_TYPE + "= ?", new String[] {
"com.whatsapp"
}, null);
int contactNameColumn = cursor.getColumnIndex(ContactsContract.RawContacts.CONTACT_ID);
while (cursor.moveToNext()) {
String name = cursor.getString(contactNameColumn);
System.out.println(name);
Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[] {
Integer.toString(contactNameColumn)
}, null);
while (pCur.moveToNext()) {
String phonenumber = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
System.out.println("PHONE: " + phonenumber);
}
pCur.close();
}
cursor.close();
當我打印出它正確打印出來的名字,然後我用這個ID來查詢,以便在數據表中得到他們的電話號碼,但總是返回null
,任何人都可以幫我請。
感謝
我可以把顯示的完整代碼的上課? –
試圖使用'DatabaseUtils.dumpCursor()'作爲外部遊標?用於測試更改投影參數('new String [] {ContactsContract.RawContacts.CONTACT_ID,ContactsContract.RawContacts.DISPLAY_NAME_PRIMARY}')爲null – pskink
您是否找到解決方案?我也面臨同樣的問題 – NehaK