Как установить триггер на базе контактов в Android - PullRequest
3 голосов
/ 03 декабря 2009

У меня есть требование, в котором мне нужен список всех контактов, которые редактируются / изменяются.

Согласно документации для Android,

_SYNC_DIRTY

будет устанавливаться при каждом редактировании контакта. Но, похоже, в этом есть ошибка , которая всегда устанавливает это значение в 1 (несмотря ни на что), даже если мы явно устанавливаем его равным 0.

Итак, мне было интересно, смогу ли я создать SQLite TRIGGER в базе данных контактов. Таким образом, каждый раз, когда редактируется контакт, отредактированный идентификатор контакта заносится в другую таблицу, которую я позже смогу прочитать из своего приложения.

Я пробовал это ...

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

Но здесь есть несколько проблем ...

1) «Телефоны» - это таблица в базе данных контактов. но я не уверен насчет имени базы данных контактов (здесь я предположил, что это «contacts.db»).

2) updated_table - это таблица в другой базе данных 'mydatabase.db', которую я создал из своего приложения. и я не уверен, смогу ли я установить TRIGGERS для разных баз данных.

Все это в Android 1.6

Кроме того, я не уверен в разрешении доступа к собственной базе контактов на Android.

Есть ли другой способ достичь этого.

Любая информация по этому вопросу будет очень полезна.

Спасибо.

1 Ответ

4 голосов
/ 03 декабря 2009

Итак, мне было интересно, смогу ли я создать SQLite TRIGGER на контактах базы данных.

У вас нет доступа к базовой базе данных SQLite.

Вы можете попробовать использовать registerContentObserver(), чтобы получать уведомления об изменении контактов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...