I have an application that records video from USB cameras mounted on microscopes in remote places in Africa. It is working fine from Android 4 to 12. We have a handful of camera models and the problem is that our latest camera (already deployed dozens of them) fail on Android 9 and 10.
What is really strange is that if I open OTG Guru on those devices with that cameras, I am seeing an unknown device, with an unknown vendor and product ID, without any function inside (expecting video functions):
The same camera connected to the same tablet model but with Android 8.1 gives:
I have seen reports that it was due to a targetSdk of 28+. So I updated my app to 27 with no difference. I also downloaded an older version of OTG Guru that had targetSdk 26 and got the same result.
Now, one might think that this camera is not usable on Android 9 or 10, but several apps in the Play Store are able to use it just fine like this USB Camera app or this OTG viewer
I tried to inspect the Manifest of those apps to see if my app was missing a permission but that doesn't look like it. And if that was the case, the other cameras wouldn't work. And all 3 others that I tested work just fine and are detected normally by OTG Guru...
I tried with several USB-C to USB-A adapters and a USB-C HUB. When the latter is not externally powered, the camera is not detected at all and if I give it power, it appears exactly as shown above.
I also disabled the Android USB debugging to see if it was interfering but it didn't.