Sujet : Re: viewing local htm files on Android device
De : usenet (at) *nospam* arnowelzel.de (Arno Welzel)
Groupes : comp.mobile.androidDate : 26. Jul 2024, 17:01:03
Autres entêtes
Message-ID : <lghvhuFpls7U4@mid.individual.net>
References : 1 2
Carlos E. R., 2024-07-25 21:56:
On 2024-07-23 07:31, Malone wrote:
>
I've created a simple (just text, no script) .htm file on a Windows
computer ("testhtm.htm") and transferred it to my Android tablet.
>
In My Files - Downloads it then appears as "testhtm.htm". Tapping it and
it opens with Chrome (my default browser) as
"content:media/external/file/1000000383".
>
Long tap and select "Add to Home Screen" and an icon appears on the home
screen titled "testhtm". And when tapping this it opens in Chrome.
>
If I now restart (reboot) the tablet and try to open the file by tapping
its icon on the home page it doesn't open and I receive the message:
"Chrome does not have access to the requested resource."
>
If I then go to My Files - Downloads I find I can open it from there.
And if I then go back to the home page it will now open from there as well.
>
Why is this?
I seem to recall old bug aka feature that file:/// would not work in
Android. Re firefox, probably.
No, there is no global "file:///" mechanism in current Android versions
for security reasons. The only files an app can access are the files
within the app sandbox but nowhere else. Direct file access was
discouraged in Android 4.4 and the use of the Storage Access Framework
instead if direct file access is mandatory since Android 7.
An app only sees URIs which *may* be connected to a file or folder on
the device, but technically it is just a handle to some kind of data and
which is provided by a storage provider. Apps like Google Drive,
OneDrive, Nextclud etc. install storage providers which allow to access
files on a server which don't have to stay on the device and will only
get downloaded if needed.
In addition, an app has to request permission for *every* URI it wants
to access. This permission can be granted temporary (only lasting until
the app is terminated or the device is rebootet) or it can be
persistent, so the app has only to ask once and the permission will last
as long as the app is installed on the device.
So a browser could implement some mechanism to use the Storage Access
Framework to open a "file" instead of a website and also ask to get a
persistent permission for this - but I don't know any browser which
implemented a "open a file using the storage access framework" feature.
-- Arno Welzelhttps://arnowelzel.de