I invoke the browser as follows:
Uri uri = DocProvider.GetDocumentUri("Help.html");
Intent browser = new Intent(Intent.ACTION_VIEW);
browser.setDataAndType(uri, "text/html");
browser.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_PREFIX_URI_PERMISSION);
startActivity(Intent.createChooser(browser, "Help File"));
The DocProvider created the following uri:
content://com.rtsservices.rts_services.docprovider/document/Help.html
The Help.html referenances images in the same directory: (i.e. AircraftSize.png, ...) Chrome opens the html file, but I get an error when trying to access resources in the same directory, before making any calls to my DocProvider.
2022-01-11 11:52:19.921 7247-18601/com.rts_services.controller E/DatabaseUtils: Writing exception to parcel
java.lang.SecurityException: Permission Denial: reading com.rts_services.controller.service.DocProvider uri content://com.rtsservices.rts_services.docprovider/document/AircraftSize.png from pid=7446, uid=10252 requires that you obtain access using ACTION_OPEN_DOCUMENT or related APIs
at android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:841)
at android.content.ContentProvider.semEnforceReadPermission(ContentProvider.java:758)
at android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:684)
at android.content.ContentProvider$Transport.query(ContentProvider.java:239)
at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:106)
at android.os.Binder.execTransactInternal(Binder.java:1190)
at android.os.Binder.execTransact(Binder.java:1159)
I though Intent.FLAG_GRANT_PREFIX_URI_PERMISSION should provide access to these uri's. What am I missing ?