I would like to suggest adding a Survey123 property such as:
pulldata("@property", "cameraDetected")
This would allow a survey to determine if the device has a working and available camera before allowing the survey to proceed.
Currently, method=camera can require users to capture a photo using the camera. However, there are situations where the camera may be disabled or unavailable, and there is no built-in way for the survey to determine whether the camera is actually available.
For workflows where all photos must be captured through Survey123, allowing users to fall back to browsing and attaching existing photos can affect process control, photo traceability, and records management.
EXIF validation can help as an additional check. Survey123 supports extracting information such as the photo's date/time and GPS coordinates using pulldata("@exif"). However, EXIF metadata can potentially be modified before the image is attached, so it cannot reliably prove that the photo was captured through Survey123 at the actual survey location and time.
A cameraDetected property could provide another layer of control. For example:
Detect if the device camera is available.
Prevent the survey from being submitted when the required camera is unavailable.
Allow the survey to display a clear message instructing the user to use a device with a working camera.
Help prevent users from deliberately disabling the camera and using an existing photo instead.
Support projects where camera capture is part of the required process, rather than simply requiring an image attachment.
For large-scale field operations, maintaining controlled photo capture can be more important than allowing a workaround when the device camera is unavailable.
It would also be useful to have this information available as a Survey123 expression so it could be used in required, constraint, or relevant logic.
Suggested enhancement:
pulldata("@property", "cameraDetected")
This could return true or false based on whether the device has an available camera that Survey123 can use.