Как сохранить файл на SD-карте (внешней) - PullRequest
1 голос
/ 04 мая 2019

Я хочу сохранить файл на SD-карте, используя File. Я уже достиг того, чтобы сохранить файл во внешнем хранилище (названное внутренним хранилищем в моем приложении для просмотра файлов. Это НЕ SD-карта).

Я много читал о хранении данных на SD-картах и ​​часто видел:

new File(Environment.getExternalStorageDirectory() + "/MyFile")

Но при этом файл будет храниться на внешней памяти, а не на SD-карте. Так как же сохранить файл на SD-карте, а не на внешнем хранилище?

Ответы [ 2 ]

2 голосов
/ 04 мая 2019

В идеале вы используете Storage Access Framework (например, ACTION_CREATE_DOCUMENT) и позволяете пользователю выбирать, куда пользователь хочет поместить этот контент. Пользователь может захотеть поместить контент в другое место. Например, пользователь может не иметь съемного хранилища.

Временно вы можете использовать getExternalFilesDirs() и аналогичные методы на Context. Если они возвращают более 2 элементов, второй и последующие элементы являются расположениями на съемном носителе. На Android 4.4+ ваше приложение может писать в эти места без каких-либо особых разрешений. Android Q сильно меняет правила, что является еще одной причиной для использования Storage Access Framework вместо этого.

0 голосов
/ 04 мая 2019

Использование этого может помочь вам:

Ответ на вопрос переполнения стека Как получить путь к внешнему хранилищу?

Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)
...