API соседних соединений: невозможно получить доступ к полученному файлу Android 10 - PullRequest
0 голосов
/ 30 января 2020

Я следую этому руководству с целью передачи файла изображения, который на стороне получателя должен быть загружен через API REST.

Android 10 блокирует доступ к публикации c папок, таких как папка «Загрузки», в которой все полученные файлы от API-интерфейса Nearby Connections хранятся в папке «Nearby».

File payloadFile = filePayload.asFile().asJavaFile();

У меня есть Payload объект, и, как предполагает руководство, приведенный выше код должен получить файл. К сожалению, приведенный выше код возвращает ноль при таргетинге на API 29 и работает на устройстве Android 10. Прекрасно работает на более ранних Android версиях.

Я могу получить ParcelFileDescriptor, выполнив File payloadFile = filePayload.asFile().asParcelFileDescriptor();, но не знаю, как получить доступ к файлу?

Через ParcelFileDescriptor Я пытался прочитать файл следующими способами, но я всегда получить какое-либо разрешение или исключение неправильного доступа:

BitmapFactory.decodeStream(FileInputStream(payloadFileDescriptor.fileDescriptor)) или BitmapFactory.decodeFileDescriptor(payloadFileDescriptor.fileDescriptor)

Файл правильно хранится в папке «Загрузки», как я вижу, и открываю его через приложение для просмотра файлов .

Также пытался получить доступ через распознаватель контента (MediaStore.Downloads.EXTERNAL_CONTENT_URI и MediaStore.Images.EXTERNAL_CONTENT_URI), но не повезло.

Обратите внимание, что файлы сохраняются без расширения, поэтому, может быть, поэтому Mediastore ничего не может найти?

Я использую "com.google. android .gms: play-services-поблизости: 17.0.0".

Как уже упоминалось, я действительно хочу получить файл и загрузить его. Это абсолютно невозможно с API-интерфейсом Nearby Connections на Android 10?

...