I believe that @yanokwa and @Tino_Kreutzer have already discussed this privately but I wanted to give a public response so others who might be interested can chime in.
Is it ever desirable for pictures taken within the context of an ODK Collect form to be available from other applications? Using a setting has the advantage of leaving behavior the same for existing users but if it's never desirable it might make sense to change the default behavior.
Confusingly enough, there are different ways that media currently is made available outside of Collect:
- Pre-migration away from
/sdcard/odk
, Android will identify all media files saved to the Collect instance folder and register them with the Android Media Store. This will go away after the migration is forced in v1.29. - Collect explicitly registers media files with the Android Media Store. I didn't realize this was the case and the comment says it's "so that the viewing is fast in Android 2.0+". It's not explicit but I'm guessing that the registration was done just for performance reasons and not because users wanted access to the files outside of Collect. I also imagine that either there's no longer a performance difference or even if there is it doesn't matter because devices are so much faster.
- Collect launches a camera app on the device to take a picture. Some camera apps will only hand the media back to Collect but others will also save a copy in their own folder (e.g. a DCIM folder).
The second point is straightforward enough to take care of with or without a setting but the last one is much harder because camera apps are inconsistent in where they save images and how they name them. I'm not sure whether this is something most camera apps do or not (please comment if you know). It would be important to figure out whether doing something about that is necessary because that changes the scope a lot. To see whether your device does this, take a picture from Collect, then open an image browser/viewer app. On my Samsung Galaxy Tab A, for example, I see the image I just took twice. If I look at the image details, I see that one is in the ODK instance folder and the other is in the DCIM folder.