Dit spørgsmål er ikke så klart, men jeg vil prøve at svare.
Mest sandsynligt er din database enten:
- Eksisterer ikke endnu, og du skal oprette den;
- Din databasefil er skrivebeskyttet, du skal ændre den (dette spørgsmål kan være relateret).
For #2, i stedet for at bruge SQLiteOpenHelper#getReadableDatabase()
, brug SQLiteOpenHelper#getWritableDatabase
Hvis din database er på en ekstern lagerenhed, har du et par andre ting at kontrollere:
- Er det eksterne lager monteret i øjeblikket? Hvis ikke, kan du ikke få adgang til db.
- Er den monteret som skrivebeskyttet? Hvis det er tilfældet, bliver du nødt til at ændre dette.
- Har du tjekket stien? Er det korrekt?
Problemet kan være ethvert af disse emner.
Prøv følgende for at kontrollere, om den er monteret som skrivebeskyttet:
/* 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;
}
Taget herfra.
For mere information om Environment
klasse, se venligst dokumenterne.