Mit Version 4.4 KitKat wurden einige Änderungen eingeführt, die sich auf die Speicher- und Datensicherheit von Android beziehen.
Zum Beispiel, auch wenn True zurückgibt, können Sie nicht auf externe SD-Karte schreiben, sondern nur in das Verzeichnis, das von Environment.getExternalStorageDirectory()
zurückgegeben wird.
/* 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;
}
Um in der Lage sein, zu löschen, schreiben, Verschieben von Dateien Sie den Speicherzugriffsrahmen verwenden, die Sie Dateien auf dem Handy direkt zugreifen kann, sondern auch alle Remote-Dateien wie zum Beispiel Dateien in Google Drive.
eine Datenbank öffnen Sie einen Pfad zur Verfügung zu stellen, aber die Api Document Provider können Sie nur einen Input Stream öffnen oder Dateien bewegen, so, um eine Datenbank öffnen Sie die Datei zu einem gewissen privaten internen verschieben/kopieren müssen Speicher oder zu Environment.getExternalStorageDirectory()
Verzeichnis.
Mehr Informationen zu diesem Thema:
https://developer.android.com/guide/topics/providers/document-provider.html
https://stackoverflow.com/a/43317703/1502079
https://stackoverflow.com/a/21674485/1502079
Welche Android-Version? Wo ist auf der SD-Karte die Datenbank? Mit welchem Code öffnest du die Datenbank? Ist die SD-Karte schreibgeschützt? – StenSoft
Wie überprüfen wir, ob die SD-Karte schreibgeschützt ist? –
Der SD-Karteneintrag in '/ proc/mounts' hat' rw' Flag – StenSoft