-1
ディレクトリを作成するために次のコードを試しましたが、このコードはmarshmallowまで動作しますが、Android 'N'では動作しません。Android Nでファイルを作成
File direct = new File(Environment.getExternalStorageDirectory() + "/MyApp/Drawing");
if (!direct.exists()) {
if (direct.mkdirs()) {
Log.v(TAG, "Directory created");
}
else {
Log.v(TAG, "Directory doesn't created");
}
}
File file = new File(direct, "newfile.jpg");
Uri contentUri = FileProvider.getUriForFile(HandDrawingActivity.this, "com.example.fileprovider", file);
String fname = contentUri.getPath();
try {
FileOutputStream fos = new FileOutputStream(fname);
} catch (FileNotFoundException e){
e.printStackTrace();
}
ここでは、この行にファイルが見つかりませんでした。 注:ディレクトリが作成され、ファイルは作成されません。ファイルがすでに存在する場合は、ファイルを開くことができます。 ご協力いただければ幸いです。
7.0からのアクセス許可の変更を見てください。https://developer.android.com/about/versions/nougat/android-7.0-changes.html#perm –
@ThomasRoulin FileProviderを使用して既存のファイルを開くことができます。私はそれを使用して新しいディレクトリを作成する方法を知ってもいいですか? – Gunaseelan
このファイルを試してください。direct = new File(Environment.getExternalStorageDirectory()、 "Drawing"); –