sql >> Base de Datos >  >> RDS >> SQLite

No se puede abrir la base de datos en modo lectura/escritura

Tu pregunta no es tan clara, pero intentaré responder.

Lo más probable es que su base de datos:

  1. Aún no existe y tienes que crearlo;
  2. Su archivo de base de datos es de solo lectura, debe cambiarlo (esta pregunta puede estar relacionada).

Para el #2, en lugar de usar SQLiteOpenHelper#getReadableDatabase() , use SQLiteOpenHelper#getWritableDatabase

Si su base de datos está en una unidad de almacenamiento externa, tiene algunas otras cosas que verificar:

  1. ¿Está montado el almacenamiento externo actualmente? De lo contrario, no podrá acceder a la base de datos.
  2. ¿Está montado como solo lectura? Si es así, tendrá que cambiar esto.
  3. ¿Has comprobado la ruta? ¿Es correcto?

El problema podría estar en cualquiera de esos temas.

Para verificar si está montado como de solo lectura, intente lo siguiente:

/* 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;
}

Tomado de aquí.

Para obtener más información sobre el Environment clase, consulte los documentos.