Использование флага Intent.FLAG_GRANT_READ_URI_PERMISSION - PullRequest
2 голосов
/ 11 декабря 2011

Я столкнулся со следующей проблемой: Я создал приложение, в котором пользователь может хранить свои личные файлы, и мне нужно передать эти файлы в программы просмотра по умолчанию (например, PDFViewer).

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

Теперь это прекрасно работает, но я столкнулся с новой проблемой - в документации сказано, что мне нужно использовать флаг Intent.FLAG_GRANT_READ_URI_PERMISSION, когда я передаю URI в PDFViewer, но в моем случае он работает хорошо даже без этого флага и даже с "android: grantUriPermissions = "ложь" "

Похоже, теперь мои файлы стали не приватными из-за провайдера контента.

Как заставить почтить Intent.FLAG_GRANT_READ_URI_PERMISSION флаг?

1 Ответ

0 голосов
/ 12 декабря 2011

Нашел проблему - я забыл добавить флаг "android: readPermission" своему провайдеру

...