在我的Android应用程序中,我想显示移动用户的联系人(姓名,个人资料图片),首先显示已经安装并注册该应用程序的联系人(匹配是通过联系人的电子邮件进行的)。
尝试遍历每个联系人并匹配,如果他们的电子邮件已经注册(在外部SQLITE表中)似乎不是一种有效的方式。
我想直接添加(在地址簿的某处?)额外的数据“isRegistered = true / false”,并通过此值命令我的addreess book查询以滚动地址簿。 可能吗?如何详细实现这个?
答案 0 :(得分:1)
选项1
我认为最有效的方式是你最初的想法,略有改进:
SQLite
数据库中存储已注册电子邮件列表(针对用户的联系人)。HashSet
选项2
如果您仍想检查在Contacts DB中存储自定义值的选项,并将其集成到查询中,则需要创建SyncAdapter
。
这基本上是一种能够将联系人与服务器同步到您自己的RawContact的服务,然后将其聚合到一个或多个现有的RawContacts中,就像Google
为Google Contacts
所做的那样。
您可以将其设置为在添加新联系人时收到通知,并让SyncAdapter
将所需信息添加到联系人,以便它显示指向您应用的链接。
如果您转到手机设置>帐户,您可以在那里看到Whatsapp
和Google的SyncAdapters
,您可以在其中关闭/打开它们。
要创建同步适配器,您可以关注official docs或此great tutorial。