说明
安卓原生的Camera接口没有获取当前打开摄像头的ID的接口,应用有这个需求,下面是添加获取当前打开Camera的ID的方法。
实现
zhoujy@TP:~/data/android/sc826_cn_01_00/msm_8953_git/frameworks$ git show 4184aba66384c03f011471b542b59a322ce0f6c5
commit 4184aba66384c03f011471b542b59a322ce0f6c5
Author: zhoujy <zhou764219923@qq.com>
Date: Wed Nov 4 15:27:51 2020 +0800
[frameworks]新增获取相机ID的接口
diff --git a/frameworks/base/api/current.txt b/frameworks/base/api/current.txt
index e3c6714..5ca7909 100644
--- a/frameworks/base/api/current.txt
+++ b/frameworks/base/api/current.txt
@@ -13300,6 +13300,7 @@ package android.hardware {
method public final void autoFocus(android.hardware.Camera.AutoFocusCallback);
method public final void cancelAutoFocus();
method public final boolean enableShutterSound(boolean);
+ method public int getCameraId();
method public static void getCameraInfo(int, android.hardware.Camera.CameraInfo);
method public static int getNumberOfCameras();
method public android.hardware.Camera.Parameters getParameters();
diff --git a/frameworks/base/api/system-current.txt b/frameworks/base/api/system-current.txt
index 0c2d0c1..54189c5 100644
--- a/frameworks/base/api/system-current.txt
+++ b/frameworks/base/api/system-current.txt
@@ -13748,6 +13748,7 @@ package android.hardware {
method public final void autoFocus(android.hardware.Camera.AutoFocusCallback);
method public final void cancelAutoFocus();
method public final boolean enableShutterSound(boolean);
+ method public int getCameraId();
method public static void getCameraInfo(int, android.hardware.Camera.CameraInfo);
method public static int getNumberOfCameras();
method public android.hardware.Camera.Parameters getParameters();
diff --git a/frameworks/base/api/test-current.txt b/frameworks/base/api/test-current.txt
index 1a97754..3c9f5ee 100644
--- a/frameworks/base/api/test-current.txt
+++ b/frameworks/base/api/test-current.txt
@@ -13318,6 +13318,7 @@ package android.hardware {
method public final void autoFocus(android.hardware.Camera.AutoFocusCallback);
method public final void cancelAutoFocus();
method public final boolean enableShutterSound(boolean);
+ method public int getCameraId();
method public static void getCameraInfo(int, android.hardware.Camera.CameraInfo);
method public static int getNumberOfCameras();
method public android.hardware.Camera.Parameters getParameters();
diff --git a/frameworks/base/core/java/android/hardware/Camera.java b/frameworks/base/core/java/android/hardware/Camera.java
index 20abf48..ba7c6c7 100755
--- a/frameworks/base/core/java/android/hardware/Camera.java
+++ b/frameworks/base/core/java/android/hardware/Camera.java
@@ -189,6 +189,7 @@ public class Camera {
private int mPreviewHeight = 720;
private int scaleWidth = 1280;
private int scaleHeight = 720;
+ private int mCameraId = -1;
private final Object mAutoFocusCallbackLock = new Object();
private static final int NO_ERROR = 0;
@@ -562,6 +563,7 @@ public class Camera {
mPostviewCallback = null;
isH264 = false;
isPreviewCallBack = false;
+ mCameraId = cameraId;
mUsingPreviewAllocation = false;
mZoomListener = null;
/* ### QC ADD-ONS: START */
@@ -995,6 +997,9 @@ public class Camera {
// doing one-shot preview continuously.
setHasPreviewCallback(cb != null, false);
}
+ public int getCameraId() {
+ return mCameraId;
+ }
/**
* <p>Installs a callback to be invoked for the next preview frame in
zhoujy@TP:~/data/android/sc826_cn_01_00/msm_8953_git/frameworks$