Как я могу следить за изменениями в базе данных другого приложения?
Я хотел бы отслеживать изменения в другой базе данных приложений SQLite. Поскольку Android не позволяет мне получать доступ к внутренним данным другого приложения, мне нужно корневое приложение, которое точно такое же, как у меня.
Есть ли способ, которым я мог бы отслеживать изменения в файле в системе и инициировать событие в моем приложении?
Я погуглил и видел, как люди рекомендуют использоватьFileObserver
класс, но это не будет работать для защищенных файлов. Любые другие предложения?
-
Я искал ответ для этого, но я не нашел ни одного. Я попробовал эти два многообещающих метода, но не смог заставить их работать.
Все файлы в каталоге данных приложения принадлежат пользователю и группе этого приложения.FileObserver
уважает разрешения Linux и, следовательно, я не могу использовать его для мониторинга базы данных / файла в каталоге данных другого приложения.Мне интересно, если бы это было возможно, если бы я мог каким-то образом повысить процесс Linux моего приложения для запуска какroot
, Это тоже не легко, так как это будет означать играть сsetuid
, setguid
механизм, о котором я понятия не имею.
FileObserver
контролировать это, но это тоже не сработало. Может быть, я сделал что-то не так, но я думаю, чтов Linux разрешения на символьные ссылки бесполезны, Разрешения для символической ссылки, которые соблюдаются, соответствуют целевому файлу / каталогу.Там может быть способ использования JNI иinotify.h
файлы, но я не уверен, как это сделать.
Я не хочу опрашивать базу данных из моего приложения. Я хотел бы иметь механизм запуска событий.