
Keep selection scope explicit
Google describes PickVisualMedia for one image or video and PickMultipleVisualMedia for several. The user grants access to the selected items, not an implicit right to enumerate unrelated media. Handle cancellation separately from an item actually being selected.
The picker can also present media from eligible cloud providers. A thumbnail appearing in the picker therefore does not prove the item is already a normal local pathname under the app’s control. Keep source access, any import operation and the destination copy as separate objects in the design.
Use the returned content access route
Retain the URI supplied by the selection contract and use the platform’s supported content-access APIs. Do not manufacture a filesystem path by trimming a URI string or assuming every provider exposes the same underlying storage layout.
Google’s contract guidance includes an availability check and a fallback through ACTION_OPEN_DOCUMENT when the picker is unavailable. That means a support record should include the actual route used. Two devices showing slightly different selection interfaces need not have followed identical underlying paths.
Plan access for work that happens later
The picker guide says default access lasts until the device restarts or the app stops. For long-running work, it documents taking persistable read permission with takePersistableUriPermission on the returned URI. A developer should make that explicit at the point the task needs retained access.
Google’s document-access guide separately warns that a persisted permission does not preserve access when the associated document is moved or deleted. Treat later inability to reopen an item as an access/source lifecycle event to investigate, not proof that the video’s codec changed.
Verify the imported reference independently
If the app deliberately creates its own copy, keep that copy’s identity separate from the original provider URI. Confirm the operation completed and record which version is passed to the player. A cached thumbnail or saved display name is not evidence of a completed media import.
No Android import was executed here. The procedure addresses selected-media access and deferred work, without asserting that every returned video is offline, permanently retained, format-compatible or authorised for redistribution. Those are different checks with different evidence.
Sources and scope
Scope notes distinguish published documentation, supplied information and editorial methods. They do not report a hands-on service test.
- Android: photo picker — Primary full body: selected access, contracts/fallback, cloud-provider selection, default duration and persistent read grant.
- Android: document access — Official indexed persistence lifecycle warning and supported URI-based document access.