Heim >Java >javaLernprogramm >Warum kann ich in Android 10 trotz der erforderlichen Berechtigungen kein Verzeichnis erstellen?
Ich kann in Android 10 kein Verzeichnis erstellen. Es funktioniert auf Geräten bis Android Oreo. Ich habe zwei Möglichkeiten zum Erstellen ausprobiert Ordner.
UsingFile f = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pastebin"); if (!f.isFile()) { if (!(f.isDirectory())) { success = f.mkdir(); } }was bedeutet, dass das Verzeichnis nicht vorhanden ist erstellt.
Mit
File f = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pastebin"); if (!f.isFile()) { if (!(f.isDirectory())) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { try { Files.createDirectory(Paths.get(f.getAbsolutePath())); } catch (IOException e) { e.printStackTrace(); Toast.makeText(getApplicationContext(), R.string.unable_to_download, Toast.LENGTH_LONG).show(); } } else { f.mkdir(); } } }
Ich habe die Laufzeitberechtigungen implementiert und
pzy64.pastebinpro W/System.err: java.nio.file.AccessDeniedException: /storage/emulated/0/Pastebin pzy64.pastebinpro W/System.err: at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:391) pzy64.pastebinpro W/System.err: at java.nio.file.Files.createDirectory(Files.java:674)`
sind alle eingestellt.
Antwort:
Wie erstmals im März 2019 bekannt gegeben wurde, können Sie unter Android 10 Location standardmäßig nicht mehr auf externe Speicher oder Wechselspeicher zugreifen. Dazu gehören Environment.getExternalStorageDirectory() und andere Methoden für Environment (z. B. getExternalStoragePublicDirectory()).
Für Android 10 und 11 können Sie android:requestLegacyExternalStorage="true" zumVerwenden Sie Methoden im Kontext (z. B. getExternalFilesDir()), um auf Verzeichnisse im externen Speicher zuzugreifen, in die Ihre App schreiben kann. Sie benötigen keine Berechtigungen, um diese Verzeichnisse unter Android 4.4 zu verwenden. Bei der Deinstallation Ihrer App werden die hier gespeicherten Daten jedoch gelöscht.
Das obige ist der detaillierte Inhalt vonWarum kann ich in Android 10 trotz der erforderlichen Berechtigungen kein Verzeichnis erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!