ホームページ >Java >&#&チュートリアル >必要な権限があるにもかかわらず、Android 10 でディレクトリを作成できないのはなぜですか?
Android 10 でディレクトリを作成できません。 Android Oreo までのデバイスでは機能していましたが、作成には 2 つの方法を試しました。
UsingFile f = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pastebin"); if (!f.isFile()) { if (!(f.isDirectory())) { success = f.mkdir(); } }です。つまり、ディレクトリはそうではありませんcreated.
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 中国語 Web サイトの他の関連記事を参照してください。