Xamarin Формирует Доступ к хранилищу на базе Android (Android API 30)

#c# #android #xamarin #storage

Вопрос:

В настоящее время я нахожусь в процессе обновления своего приложения для работы с Android API 30 в соответствии с новыми правилами конфиденциальности Google. До этого я использовал флаг «Использовать устаревшее хранилище», чтобы я мог легко получить доступ к общедоступному хранилищу, как только будут получены разрешения на чтение/запись, однако это больше недоступно в последнем API.

Для временного решения я использую ACTION_OPEN_DOCUMENT_TREE или Намерение.ActionOpenDocumentTree (В Xamarin), чтобы получить доступ для чтения / записи к папке bluetooth устройства (это должна быть эта папка, так как именно там я ищу конкретные файлы).

Хотя этот метод работает, он не идеален для обычного пользователя, поскольку он требует, чтобы он действительно искал и находил папку, а не просто получал всплывающее окно с просьбой о доступе.

Как выглядит процесс в настоящее время #1

Как выглядит процесс в настоящее время #2

Как выглядит процесс в настоящее время #3

В идеале мне нужно, чтобы изображение 3 было единственным взаимодействием, которое пользователь должен выполнить, чтобы предоставить доступ к этой конкретной папке. Однако документация Xamarin не особенно ясна (особенно в отношении этих новых API для хранения данных), и я надеялся, что кто-нибудь сможет помочь мне указать правильное направление!

Любая помощь будет очень признательна, спасибо 🙂

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

1. Prior to this I was using the "Use legacy storage" flag so I could access Public storage with ease once Read/Write permissions were achieved, however that's no longer available in the latest API. Пожалуйста, используйте правильное название для этого флага. Сохраните его в своем манифесте, поскольку это необходимо для вашего приложения для работы на устройствах Android Q/10.

2. device bluetooth folder Я никогда не слышал о такой папке. Пожалуйста, сообщите полный путь.

3. Под «Использовать устаревшее хранилище» я имел в виду этот флаг: android:requestLegacyExternalStorage=»true», который все еще действует и работает для

4. @blackapps Разъяснение для устаревшего хранилища выше, и папка Bluetooth устройства, на которую я ссылаюсь, — это папка, автоматически созданная Android при получении файла Bluetooth, и ее можно найти по адресу: /хранилище/эмуляция/0/bluetooth/

5. Имеет ли создание папки Bluetooth какое-либо отношение к вашему приложению? Ваше приложение создало эту папку?