title: How to enable front camera in Camera2 API?
body: <p>How to enable front camera on Camera2 API.Can anyone help ? I have this Camera2 API code .This only sets Main camera of the device ,I want to enable both front and rear camera on a button click.What is <code>LENS_FACING_FRONT</code>,I am new to android programming.</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.
              Integer facing = characteristics.get(CameraCharacteristics.LENS_FACING);
              if (facing != null &amp;&amp; facing == CameraCharacteristics.LENS_FACING_FRONT) {
                  continue;
              }
  
              StreamConfigurationMap map = characteristics.get(
                      CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
              if (map == null) {
                  continue;
              }
  
              // 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;
          }
      } 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>