所以我现在知道我可以使用ContactsContract
类列出 Android 设备上所有可用的联系人。像这样的事情:
private void getContacts(){
ContentResolver resolver = getContentResolver();
Cursor cursor = resolver.query(ContactsContract.contacts.CONTENT_URI,null,null,null,null);
while(cursor.moveToNext){
//get contact id
.....
//get contact name
....
}
}
我说的是什么意思contact
above:
A contact
根据我的理解是一组raw_contacts
。例子:
这些是 2contacts
在电话簿中:
[ User A ]
-----------
[ User B ]
单击用户 A 后,我将得到以下信息:
| User A |
| phone 1: 0000 mobile |
| phone 2: 1111 home |
| phone 3: 2222 work |
| |
| linked :google , sim, phone, viber, whatsapp|
据我了解:
我的问题是:
如果我循环遍历所有contacts
然后循环遍历所有raw_contacts
in a contact
请记住 raw_contacts 可能很多,然后循环访问每个原始联系人的电话号码(家庭、手机、工作...)...那么这不会对性能造成影响吗?
我应该怎么做才能只循环访问手机(SIM 卡或设备)上存储的手机号码,而无需循环访问raw_contacts
由自定义应用程序生成的?
循环遍历所有内容是没有意义的raw_contacts
.
Whatsapp、Viber、Telegram 或任何电话应用程序等应用程序可以快速有效地获取这些联系人。
Thanks.