android.os.FileUriExposedException: файл: ///storage/emulated/0/test.txt, доступный за пределами приложения через Intent.getData ()

Приложение падает, когда я пытаюсь открыть файл. Работает ниже Android Nougat, но на Android Nougat вылетает. Вылетает только при попытке открыть файл с SD-карты, а не из системного раздела. Некоторая проблема с разрешением?

Образец кода:

File file = new File("/storage/emulated/0/test.txt");
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "text/*");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent); // Crashes on this line

Журнал:

android.os.FileUriExposedException: файл: ///storage/emulated/0/test.txt, доступный за пределами приложения через Intent.getData ()

Редактировать:

Ориентируясь на Android Nougat,file:// URI больше не разрешены. Мы должны использоватьcontent:// URI вместо этого. Тем не менее, мое приложение должно открывать файлы в корневых каталогах. Есть идеи?

Ответы на вопрос(19)

Ваш ответ на вопрос