Чем отличается доступ к файловой системе между KitKat 4.2 и Nougat 7.1.1?
У меня есть приложение HTMLSpyII, которое я разработал несколько лет назад, когда я был абсолютным новичком в программировании Android. Как бы то ни было, через несколько лет я не занимался программированием, он работал на моем Samsung S4 mini KitKat 4.4.2, но он не будет работать на моем Samsung Tab E Nougat 7.1.1. Я уверен, что мне не хватает чего-то простого.
Программа пытается создать каталог /HTMLSpyII/Jsoup в каталоге загрузок устройства. Он выводит этот двухстрочный runTimeAlert из последней строки следующего фрагмента кода...
Невозможно создать путь
/ Хранение / эмулировать /0/ Скачать /HTMLSpyII/Jsoup
Вот фрагмент кода, который является частью onCreate...
private File root;
private String urlString, tokenString;
private EditText url, token;
...
root = Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DOWNLOADS + "/HTMLSpyII/Jsoup");
Bundle extras = getIntent().getExtras();
if (extras != null) {
urlString = extras.getString("urlKey");
url.setText(urlString);
tokenString = extras.getString("tokenKey");
token.setText(tokenString);
if (getIntent().hasExtra("redirectsKey"))
followRedirects = extras.getBoolean("redirectsKey");
else
followRedirects = true;
if (getIntent().hasExtra("rootKey"))
root = new File (extras.getString("rootKey"));
}
if (!root.exists()) root.mkdirs();
if (!root.isDirectory())
runTimeAlert("Unable to create path\n" + root.toString())
Надеюсь, вы можете помочь:)
1 ответ
Наконец я обнаружил, что ответ на мой вопрос включает проверку прав доступа во время выполнения. Это было новым для меня. Ответ предоставлен Tarun, в этом сообщении Stackru...
Android-зефир запросить разрешение?
Ответ Таруна довольно далек, поэтому проще всего найти его, выполнив поиск в сообщении по имени Тарун; и нашел здесь также... http://revisitingandroid.blogspot.com/2017/01/how-to-check-and-request-for-run-time.html