La tua domanda non è molto chiara, ma cercherò di rispondere.
Molto probabilmente, il tuo database:
- Non esiste ancora e devi crearlo;
- Il tuo file di database è di sola lettura, devi cambiarlo (questa domanda potrebbe essere correlata).
Per #2, invece di usare SQLiteOpenHelper#getReadableDatabase()
, usa SQLiteOpenHelper#getWritableDatabase
Se il tuo database si trova su un'unità di archiviazione esterna, devi controllare alcune altre cose:
- La memoria esterna è attualmente montata? In caso contrario, non puoi accedere al db.
- È montato in sola lettura? In tal caso, dovrai cambiarlo.
- Hai controllato il percorso? È corretto?
Il problema potrebbe riguardare uno qualsiasi di questi argomenti.
Per verificare se è montato in sola lettura, prova quanto segue:
/* 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;
}
Preso da qui.
Per maggiori informazioni sull'Environment
classe, fare riferimento alla documentazione.