Android 10에서는 디렉토리를 생성할 수 없습니다. Android Oreo까지의 기기에서 작동합니다. 생성을 위해 두 가지 방법을 시도했습니다. 폴더.
사용File f = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pastebin"); if (!f.isFile()) { if (!(f.isDirectory())) { success = f.mkdir(); } }입니다. 이는 디렉토리가 그렇지 않음을 의미합니다. 생성되었습니다.
사용
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(); } } }
런타임 권한을 구현했습니다. 그리고
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)`
모두 set.
답변:
2019년 3월에 처음 공개된 것처럼 Android 10 위치에서는 기본적으로 외부 저장소나 이동식 저장소에 더 이상 접근할 수 없습니다. 여기에는 Environment.getExternalStorageDirectory() 및 Environment의 기타 메서드(예: getExternalStoragePublicDirectory())가 포함됩니다.
Android 10 및 11의 경우 매니페스트의컨텍스트의 메서드(예: getExternalFilesDir())를 사용하여 앱이 쓸 수 있는 외부 저장소의 디렉터리에 액세스합니다. Android 4.4에서는 이러한 디렉터리를 사용하는 데 권한이 필요하지 않습니다. 그러나 앱이 제거되면 여기에 저장된 데이터가 삭제됩니다.
위 내용은 필요한 권한이 있어도 Android 10에서 디렉터리를 만들 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!