public int getNumberOfCameras() { return Camera.getNumberOfCameras(); }
@Override @SuppressWarnings("deprecation") public int getCameraCount() { return android.hardware.Camera.getNumberOfCameras(); }
/** * This rewrites {@link #mCameraId} and {@link #mCameraInfo}. */ private void chooseCamera() { for (int i = 0, count = Camera.getNumberOfCameras(); i < count; i++) { Camera.getCameraInfo(i, mCameraInfo); if (mCameraInfo.facing == mFacing) { mCameraId = i; return; } } mCameraId = INVALID_CAMERA_ID; }
/** * This rewrites {@link #mCameraId} and {@link #mCameraInfo}. */ private void chooseCamera() { for (int i = 0, count = Camera.getNumberOfCameras(); i < count; i++) { Camera.getCameraInfo(i, mCameraInfo); if (mCameraInfo.facing == mFacing) { mCameraId = i; return; } } mCameraId = INVALID_CAMERA_ID; }
private int findBackCamera() { int cameraCount = 0; Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); cameraCount = Camera.getNumberOfCameras(); for (int camIdx = 0; camIdx < cameraCount; camIdx++) { Camera.getCameraInfo(camIdx, cameraInfo); if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK) { return camIdx; } } return -1; }
private int findBackCamera(){ int cameraCount = 0; Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); cameraCount = Camera.getNumberOfCameras(); for ( int camIdx = 0; camIdx < cameraCount;camIdx++ ) { Camera.getCameraInfo( camIdx, cameraInfo ); if ( cameraInfo.facing ==Camera.CameraInfo.CAMERA_FACING_BACK ) { return camIdx; } } return -1; }
private int findFrontCamera() { int cameraCount = 0; Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); cameraCount = Camera.getNumberOfCameras(); for (int camIdx = 0; camIdx < cameraCount; camIdx++) { Camera.getCameraInfo(camIdx, cameraInfo); if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { return camIdx; } } return -1; }
private int findFrontCamera(){ int cameraCount = 0; Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); cameraCount = Camera.getNumberOfCameras(); for ( int camIdx = 0; camIdx < cameraCount;camIdx++ ) { Camera.getCameraInfo( camIdx, cameraInfo ); if ( cameraInfo.facing ==Camera.CameraInfo.CAMERA_FACING_FRONT ) { return camIdx; } } return -1; }
@SuppressLint("NewApi") private Camera openCamera(int type){ int frontIndex =-1; int backIndex = -1; int cameraCount = Camera.getNumberOfCameras(); Log.i(TAG, "cameraCount: " + cameraCount); CameraInfo info = new CameraInfo(); for(int cameraIndex = 0; cameraIndex<cameraCount; cameraIndex++){ Camera.getCameraInfo(cameraIndex, info); if(info.facing == CameraInfo.CAMERA_FACING_FRONT){ frontIndex = cameraIndex; }else if(info.facing == CameraInfo.CAMERA_FACING_BACK){ backIndex = cameraIndex; } } pushCurrentCameraType = type; if(type == FRONT && frontIndex != -1){ pushCurCameraIndex = frontIndex; return Camera.open(frontIndex); }else if(type == BACK && backIndex != -1){ pushCurCameraIndex = backIndex; return Camera.open(backIndex); } return null; }
private Pair<Camera.CameraInfo, Integer> getBackCamera() { Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); final int numberOfCameras = Camera.getNumberOfCameras(); for (int i = 0; i < numberOfCameras; ++i) { Camera.getCameraInfo(i, cameraInfo); if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK) { return new Pair<>(cameraInfo, i); } } return null; } }
@SuppressLint("NewApi") private Camera openCamera(int type) { int frontIndex = -1; int backIndex = -1; int cameraCount = Camera.getNumberOfCameras(); Log.i(TAG, "cameraCount: " + cameraCount); CameraInfo info = new CameraInfo(); for (int cameraIndex = 0; cameraIndex < cameraCount; cameraIndex++) { Camera.getCameraInfo(cameraIndex, info); if (info.facing == CameraInfo.CAMERA_FACING_FRONT) { frontIndex = cameraIndex; } else if (info.facing == CameraInfo.CAMERA_FACING_BACK) { backIndex = cameraIndex; } } currentCameraType = type; if (type == FRONT && frontIndex != -1) { curCameraIndex = frontIndex; return Camera.open(frontIndex); } else if (type == BACK && backIndex != -1) { curCameraIndex = backIndex; return Camera.open(backIndex); } return null; }
@SuppressLint("NewApi") private Camera openCamera(int type){ int frontIndex =-1; int backIndex = -1; int cameraCount = Camera.getNumberOfCameras(); Log.i(TAG, "cameraCount: " + cameraCount); CameraInfo info = new CameraInfo(); for(int cameraIndex = 0; cameraIndex<cameraCount; cameraIndex++){ Camera.getCameraInfo(cameraIndex, info); if(info.facing == CameraInfo.CAMERA_FACING_FRONT){ frontIndex = cameraIndex; }else if(info.facing == CameraInfo.CAMERA_FACING_BACK){ backIndex = cameraIndex; } } currentCameraType = type; if(type == FRONT && frontIndex != -1){ curCameraIndex = frontIndex; return Camera.open(frontIndex); }else if(type == BACK && backIndex != -1){ curCameraIndex = backIndex; return Camera.open(backIndex); } return null; }
/** Favor back-facing camera by default. If none exists, fallback to whatever camera is available **/ public static int getDefaultCameraId() { int numberOfCameras = Camera.getNumberOfCameras(); Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); int defaultCameraId = -1; for (int i = 0; i < numberOfCameras; i++) { defaultCameraId = i; Camera.getCameraInfo(i, cameraInfo); if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK) { return i; } } return defaultCameraId; }
/** * Gets the id for the camera specified by the direction it is facing. Returns -1 if no such * camera was found. * * @param facing the desired camera (front-facing or rear-facing) */ private static int getIdForRequestedCamera(int facing) { CameraInfo cameraInfo = new CameraInfo(); for (int i = 0; i < Camera.getNumberOfCameras(); ++i) { Camera.getCameraInfo(i, cameraInfo); if (cameraInfo.facing == facing) { return i; } } return -1; }
/** * Gets the id for the camera specified by the direction it is facing. Returns -1 if no such * camera was found. * * @param facing the desired camera (front-facing or rear-facing) */ private static int getIdForRequestedCamera(int facing) { CameraInfo cameraInfo = new CameraInfo(); for (int i = 0; i < Camera.getNumberOfCameras(); ++i) { Camera.getCameraInfo(i, cameraInfo); if (cameraInfo.facing == facing) { return i; } } return -1; }
/** * Gets the id for the camera specified by the direction it is facing. Returns -1 if no such * camera was found. * * @param facing the desired camera (front-facing or rear-facing) */ private static int getIdForRequestedCamera(int facing) { CameraInfo cameraInfo = new CameraInfo(); for (int i = 0; i < Camera.getNumberOfCameras(); ++i) { Camera.getCameraInfo(i, cameraInfo); if (cameraInfo.facing == facing) { return i; } } return -1; }
@Test public void testCameraInfoNoCameras() throws Exception { assertThat(Camera.getNumberOfCameras()).isEqualTo(0); }
@Override public void initializeCameraManager(ConfigurationProvider configurationProvider, Context context) { super.initializeCameraManager(configurationProvider, context); numberOfCameras = Camera.getNumberOfCameras(); for (int i = 0; i < numberOfCameras; ++i) { final Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); Camera.getCameraInfo(i, cameraInfo); if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK) { faceBackCameraId = i; faceBackCameraOrientation = cameraInfo.orientation; } else if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { faceFrontCameraId = i; faceFrontCameraOrientation = cameraInfo.orientation; } } }
@Test public void testCameraInfoBackOnly() throws Exception { Camera.CameraInfo cameraQuery = new Camera.CameraInfo(); addBackCamera(); Camera.getCameraInfo(0, cameraQuery); assertThat(Camera.getNumberOfCameras()).isEqualTo(1); assertThat(cameraQuery.facing).isEqualTo(Camera.CameraInfo.CAMERA_FACING_BACK); assertThat(cameraQuery.orientation).isEqualTo(0); }
@Test public void testCameraInfoBackAndFront() throws Exception { Camera.CameraInfo cameraQuery = new Camera.CameraInfo(); addBackCamera(); addFrontCamera(); assertThat(Camera.getNumberOfCameras()).isEqualTo(2); Camera.getCameraInfo(0, cameraQuery); assertThat(cameraQuery.facing).isEqualTo(Camera.CameraInfo.CAMERA_FACING_BACK); assertThat(cameraQuery.orientation).isEqualTo(0); Camera.getCameraInfo(1, cameraQuery); assertThat(cameraQuery.facing).isEqualTo(Camera.CameraInfo.CAMERA_FACING_FRONT); assertThat(cameraQuery.orientation).isEqualTo(90); }