Ensuring compatibility across Android devices
We have a consumer-targeted Android app for which OpenCV support is critical. We need it to work on as many devices as possible. We've been unable to capture images on about 40% of the devices we've tried, apparently due to cv::VideoCapture
's use of vendor-specific APIs.
Questions:
- Is this (~40%) failure rate in line with what others have seen?
- Devices that fail: Motorola Droid/X/RAZR, HTC Evo 4G, and (sometimes) Samsung Galaxy S III
- What can we do to maximize compatibility across consumer devices?
- For example, can we capture images using the Android Camera API, convert them to OpenCV-style images, and supply them to our OpenCV processing code, thereby avoiding
cv::VideoCapture
altogether?
- For example, can we capture images using the Android Camera API, convert them to OpenCV-style images, and supply them to our OpenCV processing code, thereby avoiding
- How can we identify devices that will or won't work?
- Is there a list of Android devices and their support of OpenCV available somewhere?
- Does the OpenCV team have access to a variety of test devices?
More info:
- We use static initialization of the OpenCV libraries. Our app is intended for consumers (teachers, specifically), and expecting them to download an additional item from Google Play (OpenCV Manager) is a no-go.
- For now, we do all image capture and processing operations in native code.
The app isn't on Google Play yet; I'll update here as soon as I have a version I can share.
Check out the app on Google Play
And on the iOS App Store