我很确定根据一些初步研究做我想做的事情是不可行的,但我认为,如果有人知道某种方式,请问这里的专家社区也不会有害。
我想为联系人创建一个自定义字段,用户可以从主要的联系人应用中进行编辑;但是,只允许用户从四个特定值的列表中进行选择。字符串值的简短列表是理想的,但具有最小/最大范围的int就足够了。
我很想知道这两种方式是否可行,但也想知道这条路线的表现是否合理。更具体地说,每次收到呼叫或SMS消息时,最好是查找联系人(基于电话号码),或者更好地存储我自己的数据集(包括姓名,号码和自定义字段)和只是经常在一个线程中同步联系信息?或者在第一次运行应用时同步联系人,然后使用ContentObserver
注册更改?
以下是与answer that explains how to add a custom field to a contact类似的问题。
提前致谢。
答案 0 :(得分:1)
我认为没有针对存储在您的单独数据库中的联系人拥有自己的数据集的目的,因为您显然会遇到同步问题。您可以使用mimetype并以您链接的方式存储您想要的任何内容。
每当您想要联系联系人时,您可以使用自定义mimetype来实现。您获得联系人ID(来自ContactsContract.Data.CONTENT_URI
),然后运行另一个查询以获取联系人详细信息(来自ContactsContract.Contacts.CONTENT_URI
)。请注意这些是不同的表格。
我想为用户能够从主要通讯录应用
编辑的联系人创建自定义字段
当您使用自定义mimetypes时,我看不到可以从主应用程序编辑,并且您在此处没有太多选项。主要联系人应用程序将仅显示SDK中的字段。您可以存储针对联系人的详细信息,但它们不会显示在内置的编辑联系人屏幕中。