Я могу создать папку в корне внешнего хранилища USB / SD, но не файл.Это ограничение Android или что-то не так с моими разрешениями.
При создании файла я получаю сообщение "java.io.IOException: Permission denied".
Сначала я проверяю своиразрешения, и они кажутся в порядке.
if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)
{
ActivityCompat.requestPermissions(mActivity, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 3);
}
if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)
{
ActivityCompat.requestPermissions(mActivity, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 2);
}
Затем я сканирую свое внешнее устройство, и я нашел их.SD -> mnt / media_rw / 0123-4567USB -> mnt / media_rw / B80A-07EC
Как USB, так и SD имеют одинаковое поведение, поэтому я приведу только пример кода SD.
String folder = "/testfolder/";
String file = "testfile.txt";
-
check = new File("mnt/media_rw/0123-4567" + file).createNewFile();
Это приведет кa "java.io.IOException: Permission denied"
check = new File("mnt/media_rw/0123-4567" + folder).mkdirs();
check = new File("mnt/media_rw/0123-4567" + folder + file).createNewFile();
Это приведет к созданию папки с файлом внутри нее.
Не обращайте внимания на имена переменных, это толькопример /