Test these inputs on Android Chrome to see which triggers the "Camera vs Gallery" chooser.
accept="image/*"
The default. Often forces the new Photo Picker (no camera tile).
accept="image/*" capture="environment"
Usually skips gallery entirely and opens Camera directly.
accept="image/*" multiple
Sometimes triggers a different intent (legacy picker) to allow batch selection.
accept=".jpg, .jpeg, .png"
Avoids the generic "image/*" wildcard, possibly bypassing the Photo Picker.
accept="image/*, .pdf"
Adding a non-image type forces Android to use the generic System File Picker (which usually offers Camera).
accept="image/*, android/hack"
A newer hack. Forces the browser to treat this as a generic file request because it doesn't recognize the second MIME type.
(no accept attribute)
Should always offer Camera, Camcorder, and Files, but offers no filtering.
... since on of the above worked within the Home Assistant App (/ its WebView).
accept="image/*" capture="user"
Tests if the WebView can handle a direct camera capture intent.
accept="image/*" capture="environment"
Same as above, but for the rear camera.
accept="video/*" capture="user"
Tests if it's an image-only issue. Does it handle video?
(no accept attribute)
What is the default file picker? Does *it* have a camera option?
accept="image/*" capture="user"
Standard HTML5 "force camera" request.
accept="image/*" capture="environment"
Standard HTML5 "force rear camera" request.
(no accept attribute)
What is the default file picker? Does *it* have a camera option?
accept="image/*;capture=camera"
A non-standard syntax found in a Gist. Unlikely to work, but worth a test.
accept="image/*, android/hack"
Our control. We expect this to fail here, proving the WebView is different from Chrome.