检查联系人是否已更改android本机联系人更新我的数据库(sqlite)

问题描述:

我正在开发生日提醒android应用程序。我检索所有手机联系人并存储在sqlite(姓名,电话,出生日期)。检查联系人是否已更改android本机联系人更新我的数据库(sqlite)

我的问题是,如果我可以检查用户,例如,更改联系人姓名或电话将此更新应用到我的sqlite数据库。

做android联系人有任何id或什么?谢谢!

编辑:我需要存储在一个新的数据库表,因为我有一个'味精'自动发送和SMS如果今天是某人的生日。

+0

你为什么不简单地使用联系人数据库而不是重复这些值?这会消除这个问题。 – AxelH

+0

嗨@AxelH,你使用contacs BD而不是重复这些值是什么意思?我需要将联系人信息存储到数据库中,因为我有一个'msg'列,如果他/她的生日是今天,它会自动发送带有该味精的SMS。 –

+0

看到我的答案,有你的答案和关于我以前的评论 – AxelH

要回答您的问题,您可以查看Contact Provider的文档以查看可用内容。

ContactsContract.Contacts表中还有LOOKUP_KEY列,它是联系人行的“永久”链接。由于联系人提供程序会自动维护联系人,因此可能会更改联系人行的_ID值以响应聚合或同步。即使发生这种情况,内容URI CONTENT_LOOKUP_URI与联系人的LOOKUP_KEY结合在一起仍然会指向联系人行,因此您可以使用LOOKUP_KEY维护指向“最喜欢的”联系人的链接,等等。此列有其自己的格式,与_ID列的格式无关。

所以希望这个LOOKUP_KEY LOOKUP_KEY

,其中包含有关如何在其行ID变更为同步或聚集的结果发现接触提示的不透明值。

这应该是安全的使用。


但当然,我会看看是否只存储您想要发送的ID和邮件并不容易。让联系人信息存在,然后询问提供者当天出生的联系人列表,以便将消息发送给他们。您不需要使用此解决方案同步到不同的数据库。

+0

Tbh更多的解释,它更有意义的存储联系人ID和味精而不是所有的联系人数据,并从contactsdb中检索所有信息,但学习目的如何我会看看那个lookup_key。谢谢! –

+0

@MarkGonzalez在这两种情况下,你都需要这个密钥,但至少,你不必一直检查更新(这种情况非常少见,所以这种检查几乎不会做任何事情)。 – AxelH

+0

是的,我想我需要contact_id和lookup_id,因为我会使用contact_id,而lookup_key不会告诉我,contact_id行已经改变。 –