修改android14 原生Camera2 支持三摄

diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index d985004b6..c4d5dd2cb 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -179,6 +179,8 @@
     <array name="camera_id_entryvalues" translatable="false">
         <item>@string/pref_camera_id_entry_back_value</item>
         <item>@string/pref_camera_id_entry_front_value</item>
+        <item>@string/pref_camera_id_mirc_back_value</item>
+
     </array>
 
     <array name="camera_id_labels" translatable="false">
@@ -189,11 +191,14 @@
     <array name="camera_id_icons" translatable="false">
         <item>@drawable/ic_switch_camera_back</item>
         <item>@drawable/ic_switch_camera_front</item>
+        <item>@drawable/ic_switch_camera_front</item>
     </array>
 
     <array name="camera_id_descriptions" translatable="false">
       <item>@string/camera_id_back_desc</item>
       <item>@string/camera_id_front_desc</item>
+      <item>@string/camera_id_back_desc</item>
+
     </array>
 
 
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 19108e77a..0e26f3754 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -184,6 +184,9 @@
     <string name="pref_camera_id_entry_back_value" translatable="false">0</string>
     <!-- In select camera setting, front-facing camera value. [CHAR LIMIT=14] -->
     <string name="pref_camera_id_entry_front_value" translatable="false">1</string>
+        <!-- 新增 -->
+    <string name="pref_camera_id_mirc_back_value" translatable="false">2</string>
+
 
     <!-- Settings screen, location setting text. [CHAR LIMIT=20]-->
     <string name="pref_camera_save_location_title">Save location</string>
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java
index 2b46b2b33..3e76e3565 100644
--- a/src/com/android/camera/CaptureModule.java
+++ b/src/com/android/camera/CaptureModule.java
@@ -1746,7 +1746,7 @@ public class CaptureModule extends CameraModule implements
      * Returns which way around the camera is facing, based on it's ID.
      */
     private Facing getFacingFromCameraId(int cameraId) {
-        try {
+              /*  try {
             CameraManager manager = (CameraManager) mCameraActivity.getSystemService(Context.CAMERA_SERVICE);
             String cameraIds = manager.getCameraIdList()[cameraId];
             Log.d(TAG,"cameraIds="+cameraIds);
@@ -1759,10 +1759,19 @@ public class CaptureModule extends CameraModule implements
             Log.e(TAG,"find camera facing failed !!!");
             return Facing.BACK;
         }
-        /*
+
         return mAppController.getCameraProvider().getCharacteristics(cameraId)
                 .isFacingFront() ? Facing.FRONT : Facing.BACK;
         */
+               switch (cameraId){
+            case 0:
+                return Facing.BACK;
+            case 1:
+                return Facing.FRONT;
+            case 2:
+                return Facing.MICR;
+        }
+        return Facing.BACK;
     }
 
     private void resetTextureBufferSize() {
diff --git a/src/com/android/camera/one/OneCamera.java b/src/com/android/camera/one/OneCamera.java
index 9f918fc8e..3bafa1eb3 100644
--- a/src/com/android/camera/one/OneCamera.java
+++ b/src/com/android/camera/one/OneCamera.java
@@ -39,7 +39,7 @@ public interface OneCamera {
 
     /** Which way the camera is facing. */
     public static enum Facing {
-        FRONT, BACK;
+        FRONT, BACK,MICR;
     }
 
     /**
diff --git a/src/com/android/camera/one/v1/LegacyOneCameraManagerImpl.java b/src/com/android/camera/one/v1/LegacyOneCameraManagerImpl.java
index 9a3ec12c6..348b3104f 100644
--- a/src/com/android/camera/one/v1/LegacyOneCameraManagerImpl.java
+++ b/src/com/android/camera/one/v1/LegacyOneCameraManagerImpl.java
@@ -124,7 +124,10 @@ public class LegacyOneCameraManagerImpl implements OneCameraManager {
             return mFirstBackCameraId;
         } else if (facing == Facing.FRONT && mFirstFrontCameraId != null) {
             return mFirstFrontCameraId;
-        }
+        }else if (facing==Facing.MICR){
+            return CameraId.fromLegacyId(2);
+         }
+
         return null;
     }
 
@@ -193,4 +196,4 @@ public class LegacyOneCameraManagerImpl implements OneCameraManager {
 
         return characteristics;
     }
-}
\ No newline at end of file
+}
diff --git a/src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java b/src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java
index 3810eabc3..b2b10a58c 100644
--- a/src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java
+++ b/src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java
@@ -161,11 +161,18 @@ public class Camera2OneCameraManagerImpl extends CameraManager.AvailabilityCallb
             return id;
         }
 
-        if (facing == Facing.FRONT) {
+       /* if (facing == Facing.FRONT) {
             id = findFirstFrontCameraId();
         } else {
             id = findFirstBackCameraId();
-        }
+        }*/
+if (facing==Facing.FRONT){
+            id="1";
+        }else if (facing==Facing.MICR){
+            id="2";
+       }else {
+            id="0";
+         }
 
         if (id != null) {
             mCameraFacingCache.put(facing, id);

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值