liyujie
2025-08-28 b3810562527858a3b3d98ffa6e9c9c5b0f4a9a8e
android/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
....@@ -1292,6 +1292,7 @@
12921292 private final int mNumberOfCameras;
12931293 private final int mFirstBackCameraId;
12941294 private final int mFirstFrontCameraId;
1295
+ private final int mFirstExternalCameraId;
12951296
12961297 public AndroidCamera2DeviceInfo(CameraManager cameraManager,
12971298 String[] cameraIds, int numberOfCameras) {
....@@ -1301,6 +1302,7 @@
13011302
13021303 int firstBackId = NO_DEVICE;
13031304 int firstFrontId = NO_DEVICE;
1305
+ int firstExternalId = NO_DEVICE;
13041306 for (int id = 0; id < cameraIds.length; ++id) {
13051307 try {
13061308 int lensDirection = cameraManager.getCameraCharacteristics(cameraIds[id])
....@@ -1313,12 +1315,17 @@
13131315 lensDirection == CameraCharacteristics.LENS_FACING_FRONT) {
13141316 firstFrontId = id;
13151317 }
1318
+ if (firstFrontId == NO_DEVICE &&
1319
+ lensDirection == CameraCharacteristics.LENS_FACING_EXTERNAL) {
1320
+ firstExternalId = id;
1321
+ }
13161322 } catch (CameraAccessException ex) {
13171323 Log.w(TAG, "Couldn't get characteristics of camera '" + id + "'", ex);
13181324 }
13191325 }
13201326 mFirstBackCameraId = firstBackId;
13211327 mFirstFrontCameraId = firstFrontId;
1328
+ mFirstExternalCameraId = firstExternalId;
13221329 }
13231330
13241331 @Override
....@@ -1347,6 +1354,11 @@
13471354 return mFirstFrontCameraId;
13481355 }
13491356
1357
+ @Override
1358
+ public int getFirstExternalCameraId() {
1359
+ return mFirstExternalCameraId;
1360
+ }
1361
+
13501362 private static class AndroidCharacteristics2 extends Characteristics {
13511363 private CameraCharacteristics mCameraInfo;
13521364
....@@ -1367,6 +1379,12 @@
13671379 }
13681380
13691381 @Override
1382
+ public boolean isFacingExternal() {
1383
+ return mCameraInfo.get(CameraCharacteristics.LENS_FACING)
1384
+ .equals(CameraCharacteristics.LENS_FACING_EXTERNAL);
1385
+ }
1386
+
1387
+ @Override
13701388 public int getSensorOrientation() {
13711389 return mCameraInfo.get(CameraCharacteristics.SENSOR_ORIENTATION);
13721390 }