SQLite
 sql >> Base de données >  >> RDS >> SQLite

Impossible d'ouvrir la base de données en mode lecture/écriture

Votre question n'est pas très claire, mais je vais essayer d'y répondre.

Très probablement, votre base de données :

  1. N'existe pas encore, et vous devez le créer ;
  2. Votre fichier de base de données est en lecture seule, vous devez le modifier (cette question peut être liée).

Pour #2, au lieu d'utiliser SQLiteOpenHelper#getReadableDatabase() , utilisez SQLiteOpenHelper#getWritableDatabase

Si votre base de données se trouve sur une unité de stockage externe, vous avez quelques autres points à vérifier :

  1. Le stockage externe est-il actuellement installé ? Sinon, vous ne pouvez pas accéder à la base de données.
  2. Est-il monté en lecture seule ? Si c'est le cas, vous devrez changer cela.
  3. Avez-vous vérifié le chemin ? Est-ce correct ?

Le problème peut provenir de l'un de ces sujets.

Pour vérifier s'il est monté en lecture seule, essayez ce qui suit :

/* Checks if external storage is available for read and write */
public boolean isExternalStorageWritable() {
    String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state)) {
        return true;
    }
    return false;
}

/* Checks if external storage is available to at least read */
public boolean isExternalStorageReadable() {
    String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state) ||
        Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
        return true;
    }
    return false;
}

Tiré d'ici.

Pour plus d'informations sur l'Environment classe, veuillez vous référer à la documentation.