SQLite DB auf SD Karte

  • Hallo,

    ich bin Anfänger in der Android Programmierung und möchte eine App programmieren die auf eine (SQLite-) DB zugreifen muss.
    Dazu habe ich mich mit dem Beispiel hier an die Problematik heran getastet.
    Da ich die DB selbst auf einem externen System erstellen möchte (die App ist nur für mich bzw. einen kleineren Kreis denen ich die DB zur Verfügung stellen kann), möchte ich sie auf der SD Karte speichern.

    Wie kann ich das machen?

    Danke!

  • Wenn du die richtigen Permissions in deiner Androidmanifest eingestellt hast könntest du im Quellcode das hier benutzen:

    Java
    DatabaseHelper(Context context) {
      super(
        context,
        context.getExternalFilesDir(null).getAbsolutePath() + "/" + DATABASE_NAME,
        null,
        DATABASE_VERSION
      );
    }


    Diese Klasse muss dann von SQLiteOpenHelper erben.

  • Danke. An den Permission könne es liegen. Wie gesagt, ich bin Android Anfänger.
    Kannst Du mir sagen, wie ich welche Permissions setzen muss?

  • Ich habe jetzt die Permissions mit:
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    gesetzt.

    Nun läuft die App zumindest und stürzt nicht mehr ab.

    Log.d(LOG_TAG, "DbHelper hat die Datenbank: " + getDatabaseName() + " erzeugt.");
    Sagt mir: "DbHelper hat die Datenbank: /storage/emulated/0/Android/data/com.example.foo.bar/files/fooBar.sqlite erzeugt."

    Allerdings ist die Datei nicht auf der Karte.

  • du siehst ja anhand des links schon, das die datenbank nicht extern sondern intern erzeugt wurde. Den Grund dafür kann ich dir aber ohne Quellcode nicht sagen :P

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!