Я пытаюсь получить внешнюю камеру через usb, используя Camera2 API. Поэтому я хотел перечислить все камеры устройства и ожидал увидеть идентификатор внешней камеры с этим кодом:
public void testCameraIdList() {
CameraManager cameraManager = (CameraManager) context.getSystemService(CAMERA_SERVICE);
String exCamId, backCamId , frontCamId;
try {
if(cameraManager != null) {
for (String cameraId : cameraManager.getCameraIdList()) {
CameraCharacteristics characteristics = cameraManager.getCameraCharacteristics(cameraId);
Integer facing = characteristics.get(CameraCharacteristics.LENS_FACING);
//LENS_FACING_EXTERNAL will return Value: 2
if (facing != null && facing.equals(CameraCharacteristics.LENS_FACING_EXTERNAL)) {
exCamId = cameraId;
Log.d(TAG, "exCamId::" + exCamId);
}
if (facing != null && facing.equals(CameraCharacteristics.LENS_FACING_BACK)) {
backCamId = cameraId;
Log.d(TAG, "exCamId::" + backCamId);
}
if (facing != null && facing.equals(CameraCharacteristics.LENS_FACING_FRONT)) {
frontCamId = cameraId;
Log.d(TAG, "exCamId::" + frontCamId);
}
}
}
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
exCamId всегда равен нулю, поскольку он недоступен. Из Документов , я думаю, Camera2 поддерживает внешние камеры. Я что-то упустил?