title: Front Camera in Camera2 not capturing image
body: <p>I have the code for the Camera2 from <a href="https://github.com/googlesamples/android-Camera2Basic" rel="noreferrer">https://github.com/googlesamples/android-Camera2Basic</a>.</p>
  
  <p>The problem i'm facing is that when i turn to my Front Camera, i cannot capture pictures but works fine with Back Camera.</p>
  
  <p>Has anyone implemented the Camera2 Api please help!</p>
  
  <p>Here's the code snippet:</p>
  
  <pre><code>private void setUpCameraOutputs(int width, int height) {
      Activity activity = getActivity();
      CameraManager manager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE);
      try {
          for (String cameraId : manager.getCameraIdList()) {
              CameraCharacteristics characteristics
                      = manager.getCameraCharacteristics(cameraId);
  
              // We don't use a front facing camera in this sample.
              int facing = characteristics.get(CameraCharacteristics.LENS_FACING);
              Log.i(TAG,"Front Cam ID: "+ facing);
              if (characteristics.get(CameraCharacteristics.LENS_FACING)==CameraCharacteristics.LENS_FACING_FRONT)
              {
  
  
  
                  StreamConfigurationMap map = characteristics.get(
                          CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
  
  
                  // For still image captures, we use the largest available size.
                  Size largest = Collections.max(
                          Arrays.asList(map.getOutputSizes(ImageFormat.JPEG)),
                          new CompareSizesByArea());
                  mImageReader = ImageReader.newInstance(largest.getWidth(), largest.getHeight(),
                          ImageFormat.JPEG, /*maxImages*/2);
                  mImageReader.setOnImageAvailableListener(
                          mOnImageAvailableListener, mBackgroundHandler);
  
                  // Danger, W.R.! Attempting to use too large a preview size could  exceed the camera
                  // bus' bandwidth limitation, resulting in gorgeous previews but the storage of
                  // garbage capture data.
                  mPreviewSize = chooseOptimalSize(map.getOutputSizes(SurfaceTexture.class),
                          width, height, largest);
  
                  // We fit the aspect ratio of TextureView to the size of preview we picked.
                  int orientation = getResources().getConfiguration().orientation;
                  if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
                      mTextureView.setAspectRatio(
                              mPreviewSize.getWidth(), mPreviewSize.getHeight());
                  } else {
                      mTextureView.setAspectRatio(
                              mPreviewSize.getHeight(), mPreviewSize.getWidth());
                  }
  
                  mCameraId = cameraId;
                  return;
              }
              else
              {
                  onActivityCreated(Bundle.EMPTY);
              }
          }
      } catch (CameraAccessException e) {
          e.printStackTrace();
      } catch (NullPointerException e) {
          // Currently an NPE is thrown when the Camera2API is used but not supported on the
          // device this code runs.
          ErrorDialog.newInstance(getString(R.string.camera_error))
                  .show(getChildFragmentManager(), FRAGMENT_DIALOG);
      }
  }
  </code></pre>