Java 检查android本机联系人是否已更改联系人以更新my db(sqlite)

Java 检查android本机联系人是否已更改联系人以更新my db(sqlite),java,android,sqlite,Java,Android,Sqlite,我正在开发一款生日提醒android应用程序。我检索所有电话联系人并将其存储在sqlite中(姓名、电话、生日) 我的问题是,我是否可以检查用户是否更改了联系人姓名或电话号码,并将此更新应用于我的sqlite数据库 安卓联系人有身份证吗?谢谢 编辑:我需要存储在一个新的数据库表中,因为我有一列“msg”,如果今天是某人的生日,它会自动发送和发送SMS。要回答您的问题,您可以查看的文档以查看可用的内容 ContactsContract.Contacts表还具有列查找键,该键是指向联系人行的“永久”

我正在开发一款生日提醒android应用程序。我检索所有电话联系人并将其存储在sqlite中(姓名、电话、生日)

我的问题是,我是否可以检查用户是否更改了联系人姓名或电话号码,并将此更新应用于我的sqlite数据库

安卓联系人有身份证吗?谢谢


编辑:我需要存储在一个新的数据库表中,因为我有一列“msg”,如果今天是某人的生日,它会自动发送和发送SMS。

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

ContactsContract.Contacts表还具有列查找键,该键是指向联系人行的“永久”链接。由于联系人提供程序自动维护联系人,因此它可能会更改联系人行的_ID值以响应聚合或同步。即使发生这种情况,内容URI content\u LOOKUP\u URI与联系人的LOOKUP\u键组合仍将指向联系人行,因此您可以使用LOOKUP\u键来维护指向“收藏夹”联系人的链接,依此类推。此列有自己的格式,与_ID列的格式无关

所以看看这个查找键

一个不透明值,其中包含在联系人的行id因同步或聚合而更改时如何查找联系人的提示

这应该是安全的使用



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

为什么不简单地使用contacts DB而不是复制这些值?这将消除此问题。您好@AxelH,使用contacs BD而不是复制这些值是什么意思?我需要将联系人信息存储到db中,因为我有一列“msg”,如果他/她的生日是今天,它会自动发送带有该消息的短信。请看我的答案,这是你的答案,还有关于我以前评论的更多解释。存储联系人id和msg而不是所有联系人数据更有意义,并从contactsdb中检索所有信息,但如何用于学习目的,我将查看查找键。谢谢@MarkGonzalez在这两种情况下,你都需要这个密钥,但至少你不必一直检查更新(这是非常罕见的,所以这个检查基本上不会起任何作用)。是的,我想我需要联系id和查找id,因为我将使用contact_id,而lookup_key不会告诉我contact_id行已更改。@MarkGonzalez我没有阅读所有内容,但我认为这与更新的联系人信息无关,但如果contact id已更改,无论原因为何。因此,如果您使用
查找
,即使更改了
联系人ID
,您仍然可以找到该联系人,因为该联系人的
查找ID
将是相同的。做一些测试以确保,我在这里没有工作站,所以基本上,即使我更改联系人信息,如姓名、电话、地址、生日,查找id也不会更改。。。很好,就像我之前说的,我回家后会看一看。编辑:但如果lookup\u id从未更改,我每次启动应用程序时都必须检查来自联系人的数据是否与mydb数据匹配。