Android получает доступ к базе данных другого приложения

Я создаю приложение для Android и хочу получить прямой доступ к файлу базы данных другого приложения (читать из него). Как лучше всего это сделать, так как приложения изолированы друг от друга. Я согласен с тем, что приложению требуются права root, я просто не уверен, как лучше всего это сделать.

Должен ли я делать копию базы данных в локальной области моего приложения с помощью команды su каждый раз при запуске, а затем использовать эту базу данных? Или я должен напрямую обращаться к базе данных?


person xur17    schedule 06.04.2012    source источник


Ответы (1)


Вы разрабатываете оба приложения? Если да, то правильный способ сделать это — использовать ContentProviders Если вы не разрабатываете приложение с базой данных, узнайте у его разработчика, предоставляет ли он ContentProvider.

Если приложение с базой данных, к которой вы пытаетесь получить доступ, не предоставляет простой способ доступа к своим данным, вы не можете сделать это без root, и в этот момент ваша проблема становится во много раз сложнее.

person slayton    schedule 06.04.2012
comment
К сожалению, я не разрабатываю оба приложения. Чтобы быть более конкретным, я пытаюсь использовать базу данных, включенную в приложение Google Voice, в которой есть сопоставления номеров, используемые для прямого вызова или отправки текстового сообщения через Google Voice. - person xur17; 06.04.2012
comment
Согласно этому , мне нужно использовать команду Process p = Runtime.getRuntime().exec(su);, но я предполагаю, что это только повышает мои разрешения для запуска команд в оболочке, и в этом случае мне, скорее всего, придется скопировать файл когда приложение запускается. Есть ли способ получить прямой доступ к файлу? - person xur17; 06.04.2012