Je vraag is niet zo duidelijk, maar ik zal proberen te antwoorden.
Hoogstwaarschijnlijk is uw database ofwel:
- Bestaat nog niet, en je moet het maken;
- Uw databasebestand is alleen-lezen, u moet het wijzigen (deze vraag kan gerelateerd zijn).
Voor #2, in plaats van SQLiteOpenHelper#getReadableDatabase()
te gebruiken , gebruik SQLiteOpenHelper#getWritableDatabase
Als uw database op een externe opslageenheid staat, moet u nog een paar andere dingen controleren:
- Is de externe opslag momenteel gekoppeld? Zo niet, dan heb je geen toegang tot de database.
- Is het gemount als alleen-lezen? Als dit het geval is, moet u dit wijzigen.
- Heb je het pad gecontroleerd? Klopt het?
Het probleem kan bij een van deze onderwerpen liggen.
Probeer het volgende om te controleren of het als alleen-lezen is aangekoppeld:
/* 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;
}
Vanaf hier genomen.
Voor meer informatie over de Environment
class, raadpleeg de documenten.