【发布时间】:2016-05-28 15:48:03
【问题描述】:
我必须尝试从电话中获取 WhatsApp 联系人,并且我得到了 WhatsApp 联系人的总数,但是从 RawContacts 如何获取我不知道的 WhatsApp 号码和名称。我试图找到一个解决方案,但无法获得确切的解决方案。请帮帮我。
我把我的代码放在下面。
ContentResolver cr = context.getContentResolver();
Cursor c = 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);
ArrayList<String> myWhatsappContacts = new ArrayList<>();
String projection[] = { ContactsContract.CommonDataKinds.Phone.NUMBER };
if(c != null) {
if (c.getCount() > 0) {
while (c.moveToNext()) {
String whatsappContactId = c.getString(c.getColumnIndex(ContactsContract.RawContacts.Data._ID));
Cursor dataCursor = cr.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
projection,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
new String[]{whatsappContactId}, null);
// You can also read RawContacts.CONTACT_ID to read the
// ContactsContract.Contacts table or any of the other related ones.
String number = dataCursor.getString(dataCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NORMALIZED_NUMBER));
myWhatsappContacts.add(number);
}
}
}
showLogI(TAG, " WhatsApp contact size : " + myWhatsappContacts.size());
【问题讨论】:
标签: android contacts android-contacts whatsapp android-contentresolver