4 Stimmen

Duplizieren einer Android-Datenbank aus einer anderen Anwendung?

Ich habe zwei Versionen der gleichen Anwendung.

Wenn man von der kostenlosen Version auf die kostenpflichtige Version umsteigt, möchte ich, dass die kostenlose Datenbank in die Pro-Datenbank kopiert wird.

Gibt es eine Möglichkeit, auf die Datenbankdatei selbst zuzugreifen, wenn sie zu einer anderen Anwendung gehört?
Gehört die Datei überhaupt zur Anwendung oder ist sie allgemein über das Dateisystem zugänglich?

Und schließlich: Wie bekomme ich den Pfad zur Datenbankdatei, ohne ihn fest zu codieren?

5voto

CommonsWare Punkte 950864

Gibt es eine Möglichkeit, wie ich auf die Datenbankdatei selbst zugreifen, wenn sie zu einer einer anderen Anwendung gehört?

Nur wenn beide Anwendungen eine gemeinsame Benutzer-ID haben und mit demselben Signierschlüssel signiert sind.

Gehört die Datei überhaupt zum Anwendung oder ist sie allgemein über das Dateisystem zugänglich?

Sie wäre über das Dateisystem verfügbar ( /data/data/your.package.goes.here/databases/whatever-you-called-the.db ), aber wiederum nur, wenn beide Anwendungen eine gemeinsame Benutzer-ID haben und mit demselben Signierschlüssel signiert sind.

Und schließlich, wie bekomme ich den Pfad zur Datenbankdatei, ohne ihn fest zu kodieren?

Sie müssen es hart kodieren, oder zumindest die variablen Komponenten (Paketname und Datenbankname), die Sie beide bereits zur Kompilierungszeit kennen.

1voto

jebcor Punkte 141

Wo befindet sich die Datenbankdatei? Wenn sie sich auf der SD-Karte befindet, können Sie wahrscheinlich direkt auf sie zugreifen. Wenn Sie die DB in Ihrem privaten Anwendungsverzeichnis erstellt haben, können Sie nicht darauf zugreifen. Sie könnten wahrscheinlich einen Inhaltsanbieter in der kostenlosen Version Ihrer Anwendung definieren, den die Pro-Version verwenden könnte, um alle in der Datenbank gespeicherten Informationen abzurufen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X