Android系统交互与数据操作全解析
1. 联系人数据库操作
在操作联系人数据库时,若要查询所有条目,可使用如下选择条件:
ContactsContract.Contacts.IN_VISIBLE_GROUP+" = 1"
此条件可将返回的条目限制为仅用户在联系人用户界面中可见的条目,从而大幅减少活动中显示的列表大小,使其更接近联系人应用中显示的列表。
当用户从列表中选择一个联系人时,会弹出一个对话框,显示该联系人的所有电子邮件条目列表。若从列表中选择一个特定地址,则会编辑该条目;若按下“添加”按钮,则会添加一个新的电子邮件地址条目。
添加新电子邮件地址时,需获取用户所选高级联系人所代表的某个原始联系人(RawContact)的ID。通常,可获取第一个匹配的原始联系人的ID。插入操作需要此ID,而更新操作则引用表中已有电子邮件记录的不同行ID。
需注意,CommonDataKinds中提供的用于读取数据的Uri不能用于更新和更改操作。插入和更新操作必须直接在ContactsContract.Data Uri上调用,并且还必须指定额外的元数据MIMETYPE,否则后续查询可能无法将插入的数据识别为联系人的电子邮件地址。
此外,在应用中与联系人API交互时,必须在应用清单中声明 android.permission.READ_CONTACTS 和 android.permission.WRITE_CONTACTS 权限。由于联系人聚合过程的存在,引用联系人的不同行ID可
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



