#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-framework3. Итак, они усложнили простую задачу : ( 🙁 Мне нужно больше учиться! Можете ли вы предоставить мне некоторые ссылки, по которым я могу легко понять, как просто записывать и читать текстовый файл во внешнем хранилище в новых версиях Android Studio?? <3 Спасибо.
4. Ссылка, которую я разместил выше, уже показывает это. Это не так сложно, как может показаться на первый взгляд: en.proft.me/2018/05/24/using-android-storage-access-framework