Проблема при создании файла во внешнем хранилище

#android #file-writing

#Android #запись файла

Вопрос:

Я создал приложение для Android, которое использует внешнее хранилище мобильного устройства Android! Я создал версию APK и протестировал на некоторых телефонах Android.

На некоторых телефонах мое приложение не может создать файл в указанном каталоге, но на каком-то другом телефоне это может сделать!

Я использовал File dir = new File(Environment.getExternalStorageDirectory() "/My App Name"); в качестве данного каталога!

Он работает на каком-то телефоне, но на каком-то другом телефоне он выдает сообщение no such file or directory .

Примечание: В моей версии Android, когда я пытался использовать метод getExternalStorageDirectory() , он показал, что его нельзя использовать (отметив его непригодным для использования). Но я не смог найти другого способа сделать это.

Как я могу решить эту проблему в этой версии?

Моя версия Android Studio: android-studio-ide-193.6626763-windows . (Android Studio 4.0) может быть!

Комментарии:

1. Для Android Q добавьте android:requestLegacyExternalStorage=»true» в файл манифеста, чтобы продолжить в разделе Q.

2. Не могли бы вы объяснить подробнее, пожалуйста?? 🙁 Я просто хочу написать текст в этом каталоге. больше ничего!

3. Вы можете обойти новое ограничение в Android 10 только с помощью android:requestLegacyExternalStorage атрибута. Но тогда у вас будет такая же проблема в Android 11, который выходит очень скоро.

Ответ №1:

Это потому, что Android 10 больше не позволяет вам использовать getExternalStorageDirectory() . Вам необходимо провести рефакторинг вашего приложения, чтобы использовать хранилище с ограниченной областью действия: https://medium.com/@gavingt/refactoring-my-backup-and-restore-feature-to-comply-with-scoped-storage-e2b6c792c3b

Комментарии:

1. Итак, я больше не могу получить доступ к внешнему хранилищу??

2. Не с File командами, нет. Вам необходимо использовать платформу доступа к хранилищу: en.proft.me/2018/05/24/using-android-storage-access-framework

3. Итак, они усложнили простую задачу : ( 🙁 Мне нужно больше учиться! Можете ли вы предоставить мне некоторые ссылки, по которым я могу легко понять, как просто записывать и читать текстовый файл во внешнем хранилище в новых версиях Android Studio?? <3 Спасибо.

4. Ссылка, которую я разместил выше, уже показывает это. Это не так сложно, как может показаться на первый взгляд: en.proft.me/2018/05/24/using-android-storage-access-framework