Как я могу получить провайдера (skype/whatsapp/google) контакта/номера телефона

Как я могу получить «поставщик контактов с номером телефона» (google/skype/whatsapp/...), когда я запрашиваю поставщика контактов Android?

В настоящее время у меня есть эти поля в моей проекции, и я не могу найти поле, в котором есть информация о «контактном поставщике» о контакте / номере.

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,
};

person Gavriel    schedule 12.03.2016    source источник
comment
Вы нашли решение? Это действительно сложно найти в Google   -  person Anton Kizema    schedule 03.03.2017
comment
к сожалению нет :(   -  person Gavriel    schedule 29.03.2017


Ответы (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» и т. д.

person lior_13    schedule 07.11.2019