2012-04-06 8 views
1

Ich erstelle eine Android-Anwendung, und ich möchte direkt auf die Datenbank-Datei einer anderen Anwendung zugreifen (davon lesen). Was ist der beste Weg, dies zu tun, da Anwendungen Sandboxed voneinander sind. Ich bin damit einverstanden, dass die App Root-Berechtigungen benötigt, ich bin mir nur unsicher, was der beste Weg ist, dies zu tun.Android Access Andere App-Datenbank

Sollte ich bei jedem Start eine Kopie der Datenbank im lokalen Bereich meiner App mit dem Befehl su erstellen und diese Datenbank dann verwenden? Oder sollte ich direkt auf die Datenbank zugreifen?

Antwort

3

Entwickeln Sie beide Apps? Wenn ja, dann die richtige Weise, dies zu tun ist, um ContentProviders zu verwenden Wenn Sie nicht die App mit der Datenbank entwickeln, überprüfen Sie mit seinem Entwickler, um zu sehen, ob es eine ContentProvider bietet.

Wenn die App mit der Datenbank, auf die Sie zugreifen möchten, keine einfache Möglichkeit bietet, auf ihre Daten zuzugreifen, können Sie dies ohne root nicht tun. An diesem Punkt ist Ihr Problem um ein Vielfaches schwieriger geworden.

+0

Leider entwickle ich nicht beide Apps. Genauer gesagt versuche ich, die Datenbank zu verwenden, die in der Google Voice-App enthalten ist und die Nummernzuordnungen enthält, die zum direkten Anrufen oder Senden einer Nummer über Google Voice verwendet werden. – xur17

+0

Laut [this] (http://www.stealthcopter.com/blog/2010/01/android-request-root-access-in-your-app/) muss ich den Befehl "Process p = Runtime .getRuntime(). exec ("su"); ", aber ich gehe davon aus, dass nur meine Berechtigungen für die Ausführung von Befehlen in der Shell eskalieren. In diesem Fall müsste ich die Datei höchstwahrscheinlich kopieren, wenn die Anwendung gestartet wird. Gibt es eine Möglichkeit, direkt auf die Datei zuzugreifen? – xur17

Verwandte Themen