I am working on a React Native package to get information about the cameras on an Android device. The issue is that not all the cameras are showing up.
My code is the following:
try {
Context context = getReactApplicationContext();
CameraManager cameraManager = (CameraManager)context.getSystemService(Context.CAMERA_SERVICE);
for (String cameraId : cameraManager.getCameraIdList()) {
CameraCharacteristics cameraCharacteristics = cameraManager.getCameraCharacteristics(cameraId);
Set<String> physicalCameraIds = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.P) {
physicalCameraIds = cameraCharacteristics.getPhysicalCameraIds();
}
Log.d(TAG, "logic ID: " + cameraId + " Physics under ID: " + Arrays.toString(physicalCameraIds.toArray()));
int[] capabilities = cameraCharacteristics.get(CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES);
Log.d(TAG, Arrays.toString(capabilities));
}
} catch(Exception e) {
promise.reject("Error", e);
}
This piece of code returns the following:
D/Debug: logic ID: 0 Physics under ID: []
D/Debug: [0, 9, 3, 7, 4, 5, 1, 6, 2]
D/Debug: logic ID: 1 Physics under ID: []
D/Debug: [0, 3, 5, 1, 6, 2]
This suggests that it is missing the REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA. However the phone I am testing this on has 3 back cameras and 1 front facing camera. What am I missing?