Ich habe eine Reihe von 4 Anwendungen, die alle eine allgemeine Datenbank benötigen. Der Benutzer kann zuerst eine beliebige App verwenden und diese App erstellt die SQLite-Datenbank.Verwendung der gleichen SQLite-Datenbank in mehreren Android-Apps
Ich denke, ich kann die Datenbank in einem bestimmten Ordner mit einem vollständigen Pfad in der SQLiteOpenHelper
erstellen, vielleicht kann ich die Datenbank in einem bestimmten Pfad erstellen und alle Apps diese Datenbank verwenden, aber Daten würden die Sicherheit verlieren.
checkte ich ein paar Antworten, wo es wird empfohlen, ein ContentProvider
oder sharedUserId
, aber die Beispiele sind für Szenarien zu verwenden, wo eine App seine Daten gemeinsam nutzen wollen, in diesem Fall eine gemeinsame Datenbank für alle Anwendungen ist, Wie kann ich verwenden ContentProvider
in diesem Szenario?
Was wäre ein guter Weg, um das zu erreichen?
Wir haben ein proprietäres System erstellt, das viele Apps auf die gleiche Datenbank zugreifen lässt, und wir haben es mit 'ContentProvider' gemacht. Ich denke, das ist der richtige Weg. Die Beispiele für "ContentProvider" sind identisch: Eine App, die ihre Daten teilt, ist dieselbe wie eine Datenbank für alle Apps. – m0skit0
Danke für die Kommentare, @ m0skit0 Ihr Fall ist wirklich ähnlich, Es klingt wie ContentProvider ist der Weg zu gehen, aber ich weiß nicht, welche App würde die Datenbank erstellen, die Idee war "die erste App, die der Benutzer öffnet erstellt die Datenbank "Vielleicht brauche ich, dass nur eine bestimmte App die Datenbank erstellt und die Benutzer dazu bringt, diese zu öffnen, bevor sie alle Apps nutzen können. – joel
Ok, ich verstehe. Ich denke, der Weg zu gehen ist, den 'ContentProvider' in all deine Apps aufzunehmen. Wenn eine App ausgeführt wird, überprüft sie, ob der ContentProvider vorhanden ist. Wenn es das tut, benutzt es nur dieses. Wenn nicht, richtet es es ein und macht es verfügbar. Das einzige Problem, das mir bei diesem Ansatz passieren kann, ist, dass Sie den 'ContentProvider' möglicherweise nicht im Manifest deklarieren könnten. In unserem Fall, da wir das System besitzen, haben wir einen dedizierten "Dienst", der den "ContentProvider" hat, und alle anderen Apps hängen von diesem "Dienst" ab. – m0skit0