2017-04-25 62 views
0

我正在開發生日提醒android應用程序。我檢索所有手機聯繫人並存儲在sqlite(姓名,電話,出生日期)。檢查聯繫人是否已更改android本機聯繫人更新我的數據庫(sqlite)

我的問題是,如果我可以檢查用戶,例如,更改聯繫人姓名或電話將此更新應用到我的sqlite數據庫。

做android聯繫人有任何id或什麼?謝謝!

編輯:我需要存儲在一個新的數據庫表,因爲我有一個'味精'自動發送和SMS如果今天是某人的生日。

+0

你爲什麼不簡單地使用聯繫人數據庫而不是重複這些值?這會消除這個問題。 – AxelH

+0

嗨@AxelH,你使用contacs BD而不是重複這些值是什麼意思?我需要將聯繫人信息存儲到數據庫中,因爲我有一個'msg'列,如果他/她的生日是今天,它會自動發送帶有該味精的SMS。 –

+0

看到我的答案,有你的答案和關於我以前的評論 – AxelH

回答

0

要回答您的問題,您可以查看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行已經改變。 –