Я пытаюсь получить список идентификаторов Camera2 на Galaxy S10e, который имеет 1 переднюю камеру и 2 сзади.
Мой код
try {
for (String cameraId : cameraManager.getCameraIdList()) {
CameraCharacteristics characteristics = cameraManager.getCameraCharacteristics(cameraId);
Integer facing = characteristics.get(CameraCharacteristics.LENS_FACING);
String camOrientation = "";
if(facing==null) break;
if(facing == CameraCharacteristics.LENS_FACING_EXTERNAL) {
Log.d(Globals.TAGLOG,"ID: " + cameraId + "Is External... ");
break;
} else if (facing == CameraCharacteristics.LENS_FACING_BACK) {
camOrientation = "Back";
} else if (facing == CameraCharacteristics.LENS_FACING_FRONT) {
camOrientation = "Front";
}
int[] cc = characteristics.get(CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES);
SizeF physSize = characteristics.get(CameraCharacteristics.SENSOR_INFO_PHYSICAL_SIZE);
boolean isLogical = false;
if (cc!=null) {
for (int i : cc) {
if (i == CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA) {
isLogical=true;
break;
}
}
}
int infoSupport = characteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL);
Log.d(Globals.TAGLOG,"ID: " + cameraId + " Is logical? " + isLogical +
" Orientation: " + camOrientation + " support level: " + infoSupport +
" size: " + physSize.getWidth() + " / " + physSize.getHeight());
if (android.os.Build.VERSION.SDK_INT>=28) {
Set<String> pIds = characteristics.getPhysicalCameraIds();
Log.d(Globals.TAGLOG,"pIds=> " + pIds.size());
for (String s : pIds) {
Log.d(Globals.TAGLOG,"*** Physical Id = " + s);
}
}
}
} catch (CameraAccessException e) {
e.printStackTrace();
}
Мой вывод
ID: 0 Логично? false Ориентация: Задний уровень поддержки: 1 размер: 5.645 / 4.234 pIds => 0 ID: 1 Логично? false Ориентация: Фронтальный уровень поддержки: 0 размер: 3.59168 / 2.69376 pIds => 0 ID: 2 Логично? false Ориентация: Задний уровень поддержки: 0 размер: 4.608 / 3.456 pIds => 0 ID: 3 Логично? false Ориентация: Фронтальный уровень поддержки: 0 размер: 4.451 / 3.338
Не могу понять, почему я получаю 2 идентификатора фронтальной камеры (ID 1 и 3). То же самое происходит с Galaxy S10 +
Есть какие-нибудь подсказки?