Вам необходимо использовать внешнее хранилище, если вы хотите, чтобы другое приложение, например, File Manager, получило доступ к файлу.Внутреннее хранилище доступно для чтения только вашему приложению.
В комментариях вы задаете действительный вопрос - "Что делать, если у телефона нет внешнего хранилища ...?" .Это на самом деле не проблема сегодня.См. https://developer.android.com/training/data-storage/files:
Многие устройства теперь делят пространство постоянной памяти на отдельные «внутренние» и «внешние» разделы.Таким образом, даже без съемного носителя данных эти два пространства хранения всегда существуют ...
==========
Поэтому измените приведенный выше код следующим образом:
getExternalFilesDir().getAbsolutePath()+"/"+FILE_NAME
getExternalFilesDir
- это метод из класса android.content.Context
.Так что этот вызов будет работать с вашим классом активности, который является Context
.
=============
Дальнейшая поддержка выбора внешнего хранилища - этодалее, также из https://developer.android.com/training/data-storage/files.
Внутреннее хранилище лучше всего, если вы хотите быть уверенным, что ни пользователь, ни другие приложения не могут получить доступ к вашим файлам.
Лучше всего использовать внешнее хранилище.для файлов, которые не требуют ограничений доступа, и для файлов, которыми вы хотите поделиться с другими приложениями или разрешить пользователю доступ с компьютера.