【发布时间】:2018-08-21 18:12:03
【问题描述】:
所以我现在知道我可以使用ContactsContract 类来列出安卓设备上所有可用的联系人。像这样的:
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是什么意思:
一个contact根据我的理解是一组raw_contacts。示例:
这些是电话簿中的 2 个contacts:
[ 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|
据我了解:
联系人 = 用户 A 或用户 B。
raw_contacts = 用户 A(电话)或用户 A (SIM) 或用户 A (google) 或用户 A (viber)....
我的问题是:
如果我遍历所有contacts,然后在contact 中遍历所有raw_contacts 记住raw_contacts 可能很多,然后遍历电话号码(家庭、手机, work...) 的每个原始接触...那不会对性能不利吗?
我应该怎么做才能只遍历手机(SIM 卡或设备)上存储的手机号码,而不必遍历自定义应用生成的 raw_contacts?
循环遍历所有raw_contacts是没有意义的。
whatsapp、viber 或 telegram 等应用或任何电话应用都可以快速有效地获取这些联系人。
谢谢。
【问题讨论】:
标签: android android-contacts contactscontract