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

时间:2016-03-12 22:05:43

标签: android android-contentprovider android-contacts contactscontract

当我查询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 个答案:

答案 0 :(得分:0)

这是一个很老的问题,但也许将来会对某人有所帮助:

尝试执行以下操作(在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”等结果。