@Override public int getOrientation(final int cameraId) { try { CameraManager manager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE); String[] cameraIds = manager.getCameraIdList(); CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraIds[cameraId]); return characteristics.get(CameraCharacteristics.SENSOR_ORIENTATION); } catch (CameraAccessException e) { // TODO handle error properly or pass it on return 0; } }
@TargetApi(Build.VERSION_CODES.LOLLIPOP) public static boolean hasCamera2(Context context) { if (context == null) return false; if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return false; try { CameraManager manager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE); String[] idList = manager.getCameraIdList(); boolean notNull = true; if (idList.length == 0) { notNull = false; } else { for (final String str : idList) { if (str == null || str.trim().isEmpty()) { notNull = false; break; } final CameraCharacteristics characteristics = manager.getCameraCharacteristics(str); final int supportLevel = characteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL); if (supportLevel == CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY) { notNull = false; break; } } } return notNull; } catch (Throwable ignore) { return false; } }
public CameraSupport open(final int cameraId) { try { String[] cameraIds = manager.getCameraIdList(); manager.openCamera(cameraIds[cameraId], new CameraDevice.StateCallback() { @Override public int getOrientation(final int cameraId) { try { String[] cameraIds = manager.getCameraIdList(); CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraIds[cameraId]); return characteristics.get(CameraCharacteristics.SENSOR_ORIENTATION);
@Override public int getCameraCount() { CameraManager cameraManager = (CameraManager)AnkiDroidApp.getInstance().getApplicationContext() .getSystemService(Context.CAMERA_SERVICE); try { if (cameraManager != null) { return cameraManager.getCameraIdList().length; } } catch (CameraAccessException e) { Timber.e(e, "Unable to enumerate cameras"); } return 0; } }
@Test public void testGetCameraIdListNoCameras() throws CameraAccessException { assertThat(cameraManager.getCameraIdList()).isEmpty(); }
@Override public void initializeCameraManager(ConfigurationProvider configurationProvider, Context context) { super.initializeCameraManager(configurationProvider, context); this.manager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE); final WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); final Display display = windowManager.getDefaultDisplay(); final Point size = new Point(); display.getSize(size); windowSize = new Size(size.x, size.y); try { final String[] ids = manager.getCameraIdList(); numberOfCameras = ids.length; for (String id : ids) { final CameraCharacteristics characteristics = manager.getCameraCharacteristics(id); final int orientation = characteristics.get(CameraCharacteristics.LENS_FACING); if (orientation == CameraCharacteristics.LENS_FACING_FRONT) { faceFrontCameraId = id; faceFrontCameraOrientation = characteristics.get(CameraCharacteristics.SENSOR_ORIENTATION); frontCameraCharacteristics = characteristics; } else { faceBackCameraId = id; faceBackCameraOrientation = characteristics.get(CameraCharacteristics.SENSOR_ORIENTATION); backCameraCharacteristics = characteristics; } } } catch (Exception e) { Log.e(TAG, "Error during camera init"); } }
@Test public void testGetCameraIdListInOrderOfAdd() throws CameraAccessException { shadowOf(cameraManager).addCamera(CAMERA_ID_0, characteristics); shadowOf(cameraManager).addCamera(CAMERA_ID_1, characteristics); assertThat(cameraManager.getCameraIdList()[0]).isEqualTo(CAMERA_ID_0); assertThat(cameraManager.getCameraIdList()[1]).isEqualTo(CAMERA_ID_1); }
try { int internalFacing = INTERNAL_FACINGS.get(mFacing); final String[] ids = mCameraManager.getCameraIdList(); if (ids.length == 0) { // No camera throw new RuntimeException("No camera available.");
@Test public void testGetCameraIdListSingleCamera() throws CameraAccessException { shadowOf(cameraManager).addCamera(CAMERA_ID_0, characteristics); assertThat(cameraManager.getCameraIdList()).asList().containsExactly(CAMERA_ID_0); }
try { int internalFacing = INTERNAL_FACINGS.get(mFacing); final String[] ids = mCameraManager.getCameraIdList(); if (ids.length == 0) { // No camera throw new RuntimeException("No camera available.");
CameraManager manager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE); try { for (String cameraId : manager.getCameraIdList()) { CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraId);
String getFrontFacingCameraId(CameraManager cManager){ for(final String cameraId : cManager.getCameraIdList()){ CameraCharacteristics characteristics = cManager.getCameraCharacteristics(cameraId); int cOrientation = characteristics.get(CameraCharacteristics.LENS_FACING); if(cOrientation == CameraCharacteristics.LENS_FACING_FRONT) return cameraId; } return null; }
String backCameraId = null; CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE); for(String cameraId:manager.getCameraIdList()){ CameraCharacteristics cameraCharacteristics = manager.getCameraCharacteristics(cameraId); Integer facing = cameraCharacteristics.get(CameraCharacteristics.LENS_FACING); if(facing==CameraMetadata.LENS_FACING_BACK) { backCameraId = cameraId; break; } } Log.d(TAG, "back camera exists ? "+(backCameraId!=null)); Log.d(TAG, "back camera id :"+backCameraId);
@TargetApi(Build.VERSION_CODES.LOLLIPOP) public static boolean hasCamera2(Context context) { if (context == null) return false; if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return false; try { CameraManager manager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE); String[] idList = manager.getCameraIdList(); boolean notFull = true; if (idList.length == 0) { notFull = false; } else { for (final String str : idList) { if (str == null || str.trim().isEmpty()) { notFull = false; break; } final CameraCharacteristics characteristics = manager.getCameraCharacteristics(str); final int supportLevel = characteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL); if (supportLevel == CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY) { notFull = false; break; } } } return notFull; } catch (Throwable ignore) { return false; } }
@Override public void initializeCameraManager(CameraConfigProvider cameraConfigProvider, Context context) { super.initializeCameraManager(cameraConfigProvider, context); final WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); final Display display = windowManager.getDefaultDisplay(); final Point size = new Point(); display.getSize(size); mWindowSize = new Size(size.x, size.y); mCameraManager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE); try { final String[] ids = mCameraManager.getCameraIdList(); mNumberOfCameras = ids.length; for (String id : ids) { final CameraCharacteristics characteristics = mCameraManager.getCameraCharacteristics(id); final int orientation = characteristics.get(CameraCharacteristics.LENS_FACING); if (orientation == CameraCharacteristics.LENS_FACING_FRONT) { mFaceFrontCameraId = id; mFaceFrontCameraOrientation = characteristics.get(CameraCharacteristics.SENSOR_ORIENTATION); mFrontCameraCharacteristics = characteristics; } else { mFaceBackCameraId = id; mFaceBackCameraOrientation = characteristics.get(CameraCharacteristics.SENSOR_ORIENTATION); mBackCameraCharacteristics = characteristics; } } } catch (Exception e) { Log.e(TAG, "Error during camera initialize"); } }
throw new RuntimeException("Time out waiting to lock camera opening."); String cameraId = manager.getCameraIdList()[0];
public Camera2Helper(Activity activity, int cameraIndex) throws CameraAccessException { mActivity = activity; mTargetSurfaces = new ArrayList<Surface>(); mCameraManager = (CameraManager) mActivity.getSystemService(Context.CAMERA_SERVICE); mCameraId = mCameraManager.getCameraIdList()[cameraIndex]; CameraCharacteristics characteristics = mCameraManager.getCameraCharacteristics(mCameraId); StreamConfigurationMap map = characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP); mAvailableSizes = map.getOutputSizes(SurfaceTexture.class); }
String getFrontFacingCameraId(CameraManager cManager){ for(final String cameraId : cManager.getCameraIdList()){ CameraCharacteristics characteristics = cManager.getCameraCharacteristics(cameraId); int cOrientation = characteristics.get(CameraCharacteristics.LENS_FACING); if(cOrientation == CameraCharacteristics.LENS_FACING_FRONT) return cameraId; } return null; }
CameraManager manager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE); for (String cameraId : manager.getCameraIdList()) { CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraId); Log.d("Img", "INFO_SUPPORTED_HARDWARE_LEVEL " + characteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL)); }
Size mPreviewSize; CameraManager manager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE); String cameraId = manager.getCameraIdList()[0]; CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraId); StreamConfigurationMap map = characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP); mPreviewSize = map.getOutputSizes(SurfaceTexture.class)[0]; SurfaceTexture texture = mTextureView.getSurfaceTexture(); // We configure the size of default buffer to be the size of camera // preview we want. texture.setDefaultBufferSize(mPreviewSize.getWidth(), mPreviewSize.getHeight());