How to get contacts which are used in whatsapp or other application in android

匿名 (未验证) 提交于 2019-12-03 02:49:01

问题:

Hi i want to get contact which are used by other application (like whatsapp or viber ) please see in below image

please help me about this issue thanks

回答1:

With the READ_CONTACTS permission in your manifest, you can get synced contacts given the account type. For WhatsApp it's "com.whatsapp". So:

Cursor c = getContentResolver().query(         RawContacts.CONTENT_URI,         new String[] { RawContacts.CONTACT_ID, RawContacts.DISPLAY_NAME_PRIMARY },         RawContacts.ACCOUNT_TYPE + "= ?",         new String[] { "com.whatsapp" },         null);  ArrayList myWhatsappContacts = new ArrayList(); int contactNameColumn = c.getColumnIndex(RawContacts.DISPLAY_NAME_PRIMARY); while (c.moveToNext()) {     // You can also read RawContacts.CONTACT_ID to read the     // ContactsContract.Contacts table or any of the other related ones.     myWhatsappContacts.add(c.getString(contactNameColumn)); }


回答2:

myWhatsappContacts ArrayList will contain all the phone numbers that are present in your whatsapp Application.

Cursor cursor = getContentResolver().query(ContactsContract.Data.CONTENT_URI                    ,new String[] {ContactsContract.Data._ID                                ,ContactsContract.Data.DISPLAY_NAME                                ,ContactsContract.CommonDataKinds.Phone.NUMBER                                 ,ContactsContract.CommonDataKinds.Phone.TYPE}                   ,ContactsContract.Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE                   + "' AND " + ContactsContract.RawContacts.ACCOUNT_TYPE + "= ?"                   ,new String[] { "com.whatsapp" }                   , null);      while (cursor.moveToNext())     {          myWhatsappContacts.add(cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));       }


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!