您好我目前正在尝试与我正在处理的应用程序实施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