У меня есть рабочая реализация для API <29, и я пытаюсь перейти на новейший API. </p>
AndroidManifest:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.EDIT" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="*"
android:mimeType="*/*"
android:pathPattern=".*\\.pdf"
android:scheme="file" />
</intent-filter>
Операция вызывается, и я могу получить доступ к пути к файлучерез getIntent().getData()
, но если я попытаюсь открыть InputStream
к нему, мой доступ будет запрещен. Я знаю, что вы должны использовать Storage Access Framework, чтобы позволить пользователю выбрать документ, но все примеры в документации включают приложение, запрашивающее у пользователя открыть определенный файл, а не тот случай, когда пользователь открывает файлчерез файловый менеджер.
Как получить доступ к файлу, который пользователь хочет открыть в моем приложении при таргетинге на SDK 29?