Just sharing the experience of testing the external camera app with ODK Collect. I installed and used OPENCAMERA as external app, and programmed the form to trigger it. It works fine with normal values (camera gets triggered, and I get the required image with additional parameters embedded on it.
However, I observed that if I set the APPEARANCE as NEW (to force the camera to not open gallery), the form does not trigger the external OPENCAMERA app. Instead it opens its own standard camera.
So if I remove the NEW appearance, external app does open fine, but the interface starts offering the selection of gallery pic via button, which is something I am trying to avoid.
The difference between the two options is that in the second case, the camera app must be compatible with ODK Collect and return images in a format specific to it. In contrast, the first option is more versatile, following a more standard Android approach rather than being tailored to ODK Collect.
So, the first option is more recommended, but in that case, the parameters column (see the documentation) should be used to set the package name, not the appearance.
If you're using the first option, there shouldn't be an issue, as the application's package name is set in a different column from the appearance, so no conflict should arise. However, if for some reason you need to use the second option, it should still be possible to combine appearances with package names in the same column.
Indeed, Collect doesn't support the new appearance with custom camera apps.
As far as I know, there isn't a standard way to require that camera apps be used to take new pictures so unfortunately it's not functionality we can add. We should update documentation to make this limitation clear.
I don't think that approach supports any additional appearances either, right? So others would be ignored.