如何获取联系人/电话号码的“提供者”(skype/whatsapp/google)

Posted

技术标签:

【中文标题】如何获取联系人/电话号码的“提供者”(skype/whatsapp/google)【英文标题】:How can I get the "provider" (skype/whatsapp/google) of the contact/phone-number 【发布时间】:2016-06-28 02:17:32 【问题描述】:

当我查询 android 的联系人提供商时,如何获取“电话号码的联系人提供商”(google/skype/whatsapp/...)?

目前我的投影中有这些字段,但我无法找到包含有关联系人/号码的“联系人提供者”信息的字段。

import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.CommonDataKinds.Phone;

static final String[] CONTACTS_SUMMARY_PROJECTION = new String[] 
    Contacts._ID,
    Contacts.DISPLAY_NAME,
    Contacts.CONTACT_STATUS,
    Contacts.CONTACT_PRESENCE,
    Contacts.PHOTO_ID,
    Contacts.LOOKUP_KEY,
    Phone.TYPE,
    Phone.LABEL,
    Phone.NUMBER,
;

【问题讨论】:

您找到解决方案了吗?这真的很难用谷歌搜索 很遗憾没有:( 【参考方案1】:

这是一个相当古老的问题,但也许它会在未来帮助某人: 尝试执行以下操作(在 Kotlin 中,但在 Java 中类似):

val cursor = context.contentResolver.query(
                 ContactsContract.Contacts.CONTENT_URI,
                 arrayOf(ContactsContract.RawContacts.ACCOUNT_TYPE),
                 null,
                 null,
                 null)
while (cursor.moveToNext()) 
    Log.d(TAG, cursor.getString(cursor.getColumnIndex(ContactsContract.RawContacts.ACCOUNT_TYPE)))

这将为您提供“com.google”、“com.whatsapp”、“org.telegram.messenger”等结果...

【讨论】:

以上是关于如何获取联系人/电话号码的“提供者”(skype/whatsapp/google)的主要内容,如果未能解决你的问题,请参考以下文章

android联系人提供者:如何设置电话号码主要

skype5.10.0.116 没有查找联系人啊,如何添加外国好友?

为啥skype不显示联系人

从内容提供者那里获取联系人,没有重复或无效的联系人,并保存到 Realm

Android获取手机联系人的姓名和电话

SKYPE通讯录里找不到已装SKYPE的朋友,求助