Ответ 1
Убедитесь, что вы добавили разрешение на чтение внешнего хранилища в файле манифеста.
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Я хочу читать файл из внешнего хранилища. Я загрузил файл в Eclipse DDMS в хранилище /sdcard (изображение ниже). Но всякий раз, когда я пытался читать, я получил ошибку разрешения. Есть ли проблема в разрешении моего файла? Или мне нужно добавить что-либо в файл манифеста (я ничего не пишу в данный момент)?
Любая помощь будет оценена.
Код:
public void extimport(View v){
EditText xedittxt = (EditText) findViewById(R.id.frmexttxt);
String xedit = xedittxt.getText().toString();
xedit = xedit.trim();
File file;
file = new File(xedit);
StringBuilder text = new StringBuilder();
Log.d("fcheck",""+xedit);
try {
BufferedReader br = new BufferedReader(new FileReader(file)); //THIS LINE THROWS ERROR
Log.d("fcheck","f3"); //This line never got printed
String line;
while ((line = br.readLine()) != null) {
text.append(line);
text.append('\n');
}
br.close();
resultView = (TextView) findViewById(R.id.header);
resultView.setText(text);
}
catch (IOException e) {
Log.d("File open error",""+e);
Toast.makeText(getApplicationContext(), "Error opening the file.", Toast.LENGTH_SHORT).show();
}
}
LogCat:
11-19 00:21:54.252: D/fcheck(5885): /storage/sdcard/mylibman.csv
11-19 00:21:54.272: D/File open error(5885): java.io.FileNotFoundException: /storage/sdcard/mylibman.csv: open failed: EACCES (Permission denied)
Убедитесь, что вы добавили разрешение на чтение внешнего хранилища в файле манифеста.
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
У меня была одна и та же проблема, и ее можно легко удалить, выполнив любой из этих шагов: 1. Установите приложение, используя -g, при установке в версиях Android N и O. 2. Предоставьте разрешение вручную Настройки- > apps → "app_name" → Разрешения- > Включить коммутатор
Для обоих этапов 1 и 2 определите use-permission android: name= "android.permission.WRITE_EXTERNAL_STORAGE" и использует разрешение android: name= "android.permission.READ_EXTERNAL_STORAGE" в AndroidManifest.xml