Почему рекомендуемое "getExternalStorageState ()" для замены устаревшего " getExternalStorageDirectory()` работает неправильно?

0

Вопрос

Проблема: Когда я использую рекомендуемый getExternalStorageState() для замены устаревшего getExternalStorageDirectory(), рекомендуемая замена возвращает неверный путь. Я обнаружил проблему, когда FileInputStream разбился, чего раньше не было.

Следующее устарело, но правильно возвращает: /storage/emulated/0/Download/alaina.jpg

return Environment.getExternalStorageDirectory().toString() + "/Download/" + fileName;

Рекомендуется и возвращается следующее: mounted/download/alaina.jpg

return Environment.getExternalStorageState() + "/Download/" + fileName;

Что я сделал: я импортировал и использую класс RealPathUtil по татокастеру, найденному здесь, и он отлично работает. Тем не менее, некоторые методы Environment и MediaStore используемые теперь устарели. Использование getExternalStorageState() было рекомендовано с помощью предупреждений. Обычно я убираю предупреждения и использую рекомендации, и это первое, что вызывает проблему.

Расположение эмулятора:

enter image description here

1

Лучший ответ

2

Когда я использую рекомендуемое getExternalStorageState() для замены устаревшего getExternalStorageDirectory(),

Это не имеет смысла, поскольку вы не можете сравнивать их друг с другом.

Тот, который предоставляет путь к файлу. Другой - государство.

Нет необходимости использовать getExternalStorageState (), так как он всегда возвращает состояние смонтировано.

С годами всегда есть доступная внешняя память.

Метод getExternalStorageDirectory() работает и не был рекомендован неделю назад.

2021-11-23 20:10:39

Спасибо. Вы правы, это не имеет смысла. Я не думаю, что это было рекомендовано через IDE, я думаю, что неправильно истолковал источник о getExternalStorageState() и неверно истолковал это. Тем не менее, он по-прежнему возвращается устаревшим, но я просто переключусь обратно и оставлю его. Еще раз спасибо.
svstackoverflow

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................