检查联系人是否已更改android本机联系人更新我的数据库(sqlite)
我正在开发生日提醒android应用程序。我检索所有手机联系人并存储在sqlite(姓名,电话,出生日期)。检查联系人是否已更改android本机联系人更新我的数据库(sqlite)
我的问题是,如果我可以检查用户,例如,更改联系人姓名或电话将此更新应用到我的sqlite数据库。
做android联系人有任何id或什么?谢谢!
编辑:我需要存储在一个新的数据库表,因为我有一个'味精'自动发送和SMS如果今天是某人的生日。
要回答您的问题,您可以查看Contact Provider
的文档以查看可用内容。
ContactsContract.Contacts表中还有LOOKUP_KEY列,它是联系人行的“永久”链接。由于联系人提供程序会自动维护联系人,因此可能会更改联系人行的_ID值以响应聚合或同步。即使发生这种情况,内容URI CONTENT_LOOKUP_URI与联系人的LOOKUP_KEY结合在一起仍然会指向联系人行,因此您可以使用LOOKUP_KEY维护指向“最喜欢的”联系人的链接,等等。此列有其自己的格式,与_ID列的格式无关。
所以希望这个LOOKUP_KEY LOOKUP_KEY
,其中包含有关如何在其行ID变更为同步或聚集的结果发现接触提示的不透明值。
这应该是安全的使用。
但当然,我会看看是否只存储您想要发送的ID和邮件并不容易。让联系人信息存在,然后询问提供者当天出生的联系人列表,以便将消息发送给他们。您不需要使用此解决方案同步到不同的数据库。
Tbh更多的解释,它更有意义的存储联系人ID和味精而不是所有的联系人数据,并从contactsdb中检索所有信息,但学习目的如何我会看看那个lookup_key。谢谢! –
@MarkGonzalez在这两种情况下,你都需要这个密钥,但至少,你不必一直检查更新(这种情况非常少见,所以这种检查几乎不会做任何事情)。 – AxelH
是的,我想我需要contact_id和lookup_id,因为我会使用contact_id,而lookup_key不会告诉我,contact_id行已经改变。 –
你为什么不简单地使用联系人数据库而不是重复这些值?这会消除这个问题。 – AxelH
嗨@AxelH,你使用contacs BD而不是重复这些值是什么意思?我需要将联系人信息存储到数据库中,因为我有一个'msg'列,如果他/她的生日是今天,它会自动发送带有该味精的SMS。 –
看到我的答案,有你的答案和关于我以前的评论 – AxelH