|
|
@ -81,9 +81,14 @@ public class Camera2OneCameraManagerImpl implements OneCameraManager {
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public boolean hasCamera() {
|
|
|
|
public boolean hasCamera() {
|
|
|
|
|
|
|
|
return hasCamera(0);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public boolean hasCamera(int id) {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
String[] ids = mCameraManager.getCameraIdList();
|
|
|
|
String[] ids = mCameraManager.getCameraIdList();
|
|
|
|
return ids != null && ids.length > 0;
|
|
|
|
return ids != null && ids.length > id;
|
|
|
|
} catch (CameraAccessException ex) {
|
|
|
|
} catch (CameraAccessException ex) {
|
|
|
|
Log.e(TAG, "Unable to read camera list.", ex);
|
|
|
|
Log.e(TAG, "Unable to read camera list.", ex);
|
|
|
|
return false;
|
|
|
|
return false;
|
|
|
@ -157,9 +162,9 @@ public class Camera2OneCameraManagerImpl implements OneCameraManager {
|
|
|
|
String cameraId = findFirstCameraIdFacing(CameraCharacteristics.LENS_FACING_BACK);
|
|
|
|
String cameraId = findFirstCameraIdFacing(CameraCharacteristics.LENS_FACING_BACK);
|
|
|
|
if (cameraId == null) {
|
|
|
|
if (cameraId == null) {
|
|
|
|
Log.w(TAG, "No back-facing camera found.");
|
|
|
|
Log.w(TAG, "No back-facing camera found.");
|
|
|
|
Log.d(TAG, "Getting First FRONT Camera");
|
|
|
|
|
|
|
|
//xcq add
|
|
|
|
Log.d(TAG, "Getting First EXTERNAL Camera");
|
|
|
|
cameraId = findFirstCameraIdFacing(CameraCharacteristics.LENS_FACING_FRONT);
|
|
|
|
cameraId = findFirstCameraIdFacing(CameraCharacteristics.LENS_FACING_EXTERNAL);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return cameraId;
|
|
|
|
return cameraId;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -169,8 +174,12 @@ public class Camera2OneCameraManagerImpl implements OneCameraManager {
|
|
|
|
Log.d(TAG, "Getting First FRONT Camera");
|
|
|
|
Log.d(TAG, "Getting First FRONT Camera");
|
|
|
|
String cameraId = findFirstCameraIdFacing(CameraCharacteristics.LENS_FACING_FRONT);
|
|
|
|
String cameraId = findFirstCameraIdFacing(CameraCharacteristics.LENS_FACING_FRONT);
|
|
|
|
if (cameraId == null) {
|
|
|
|
if (cameraId == null) {
|
|
|
|
Log.w(TAG, "No front-facing camera found,try to find external facing camera.");
|
|
|
|
Log.w(TAG, "No front-facing camera found.");
|
|
|
|
cameraId = findFirstCameraIdFacing(CameraCharacteristics.LENS_FACING_EXTERNAL);
|
|
|
|
|
|
|
|
|
|
|
|
String backId = findFirstCameraIdFacing(CameraCharacteristics.LENS_FACING_BACK);
|
|
|
|
|
|
|
|
int start = (backId == null) ? 1 : 0;
|
|
|
|
|
|
|
|
Log.d(TAG, "Finding external camera " + start);
|
|
|
|
|
|
|
|
cameraId = findCameraIdFacingFrom(CameraCharacteristics.LENS_FACING_EXTERNAL, start);
|
|
|
|
if (cameraId == null) {
|
|
|
|
if (cameraId == null) {
|
|
|
|
Log.w(TAG, "No external camera found.");
|
|
|
|
Log.w(TAG, "No external camera found.");
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -178,16 +187,19 @@ public class Camera2OneCameraManagerImpl implements OneCameraManager {
|
|
|
|
return cameraId;
|
|
|
|
return cameraId;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** Returns the ID of the first camera facing the given direction. */
|
|
|
|
/** Returns the ID of the first camera facing the given direction. */
|
|
|
|
private String findFirstCameraIdFacing(int facing) {
|
|
|
|
private String findFirstCameraIdFacing(int facing) {
|
|
|
|
|
|
|
|
return findCameraIdFacingFrom(facing, 0);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private String findCameraIdFacingFrom(int facing, int from) {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
String[] cameraIds = mCameraManager.getCameraIdList();
|
|
|
|
String[] cameraIds = mCameraManager.getCameraIdList();
|
|
|
|
for (String cameraId : cameraIds) {
|
|
|
|
for (String cameraId : cameraIds) {
|
|
|
|
CameraCharacteristics characteristics = mCameraManager
|
|
|
|
CameraCharacteristics characteristics = mCameraManager
|
|
|
|
.getCameraCharacteristics(cameraId);
|
|
|
|
.getCameraCharacteristics(cameraId);
|
|
|
|
if (characteristics.get(CameraCharacteristics.LENS_FACING) == facing) {
|
|
|
|
if (characteristics.get(CameraCharacteristics.LENS_FACING) == facing) {
|
|
|
|
return cameraId;
|
|
|
|
if (--from < 0) return cameraId;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} catch (CameraAccessException ex) {
|
|
|
|
} catch (CameraAccessException ex) {
|
|
|
|