当我查询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,
};
这是一个很老的问题,但也许将来会帮助某人:尝试执行以下操作(在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”等结果。