Câu hỏi của bạn không rõ ràng lắm, nhưng tôi sẽ cố gắng trả lời.
Rất có thể, cơ sở dữ liệu của bạn:
- Chưa tồn tại và bạn phải tạo nó;
- Tệp cơ sở dữ liệu của bạn ở chế độ chỉ đọc, bạn phải thay đổi nó (Câu hỏi này có thể liên quan).
Đối với # 2, thay vì sử dụng SQLiteOpenHelper#getReadableDatabase()
, sử dụng SQLiteOpenHelper#getWritableDatabase
Nếu cơ sở dữ liệu của bạn nằm trên một đơn vị lưu trữ bên ngoài, bạn có một số điều khác cần kiểm tra:
- Bộ nhớ ngoài hiện có được gắn không? Nếu không, bạn không thể truy cập db.
- Nó có được gắn ở dạng chỉ đọc không? Nếu vậy, bạn sẽ phải thay đổi điều này.
- Bạn đã kiểm tra đường dẫn chưa? Có đúng không?
Vấn đề có thể nằm ở bất kỳ chủ đề nào trong số đó.
Để kiểm tra xem nó có được gắn ở dạng chỉ đọc hay không, hãy thử cách sau:
/* 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;
}
Lấy từ đây.
Để biết thêm thông tin về Environment
lớp, vui lòng tham khảo tài liệu.