Мне нужно скопировать файл из активов во внешнее хранилище. Вот мой код:Разрешение отклонено при создании нового файла на внешнем хранилище
File f = new File(Environment.getExternalStorageDirectory() + File.separator
+ "MyApp" + File.separator + "tessdata" + File.separator + "eng.traineddata");
if (!f.exists()) {
AssetManager assetManager = getAssets();
try {
f.createNewFile();
InputStream in = assetManager.open("eng.traineddata");
OutputStream out = new FileOutputStream(Environment.getExternalStorageDirectory() + File.separator
+ "MyApp" + File.separator + "tessdata" + File.separator + "eng.traineddata");
byte[] buffer = new byte[1024];
int read;
while ((read = in.read(buffer)) != -1)
out.write(buffer, 0, read);
in.close();
in = null;
out.flush();
out.close();
out = null;
} catch (IOException e) {
Log.e("tag", "Failed to copy asset file: ", e);
}
}
Я также добавил разрешение в manifet
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
произошло исключение при выполнении f.createNewFile()
, говоря: «Отказано в доступе».
Как я могу исправить это, пожалуйста?
Что делать, если вы используете приложение? 'Файл f = новый файл (getExternalFilesDir (null)," eng.traineddata ");' – rciovati
Подключено ли ваше устройство к ПК и установлено в режим Mass Storage? Или иначе в каком-то несмонтированном состоянии? Если это так, то у него не будет доступа к внешней файловой системе. – FoamyGuy