如何在Android中设置联系人数据库的触发器

时间:2009-12-03 06:12:42

标签: java mysql android sqlite

我有一个要求,其中我需要一个编辑/更改的所有联系人的列表。

根据Android documentation,

_SYNC_DIRTY
每次编辑联系人时都会设置

。但是,这里似乎有一个bug,这使得它总是设置为1(无论如何),即使我们明确地将它设置为0。

所以,我想知道我是否可以在联系人数据库上创建一个SQLite TRIGGER。这样,每次编辑联系人时,编辑的联系人ID都会填充到一个不同的表中,我可以稍后从我的应用程序中阅读。

我试过了......

CREATE TRIGGER IF NOT EXISTS updated_contacts UPDATE ON 'contacts.db'.phones
            BEGIN
            INSERT INTO updated_table SET updated_id=old.person;
            END;

但这里有一些问题......

1)'phones'是联系人数据库中的一个表。但是,我不确定联系人数据库的名称(这里我假设它是'contacts.db')。

2)updated_table是我从我的应用程序创建的另一个数据库“mydatabase.db”的表。而且,我不确定是否可以在不同的数据库中设置TRIGGERS

Android 1.6中的所有这些

此外,我不确定在Android上访问本机联系人数据库的权限。

还有其他方法可以达到这个目的。

任何关于此的信息都会有很大的帮助。

感谢。

1 个答案:

答案 0 :(得分:4)

  

所以,我想知道我是否可以创建一个   关于联系人的SQLite TRIGGER   数据库中。

您无权访问基础SQLite数据库。

您可以尝试使用registerContentObserver()通知,因为联系人已更改。