Search code examples
androidandroid-5.0-lollipopandroid-camera2

Android Camera2 front camera


I recently noticed that the Camera API is deprecated and I found the new API called Camera2.

I have read the documentation but I don't really understand it.

So my question is: how do I preview the front camera with the new camera api?

Just a preview, not recording.

I want to use this new API because in the future I'm guessing the current Camera API will be replaced and stop working.

So I want to be prepared and just sit and watch while everyone panics. XD


Solution

  • First of all, find out the id of your front camera (if it has one of course)

        CameraManager manager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE);
                try {
                    return manager.getCameraIdList();
                } catch (CameraAccessException e) {
                    return null;
                }
    

    Then find the faceCamera like this:

    CameraCharacteristics cameraCharacteristics = manager.getCameraCharacteristics(cameraId);
    
            if (cameraCharacteristics == null)
                throw new NullPointerException("No camera with id " + cameraId);
    
            return cameraCharacteristics.get(CameraCharacteristics.LENS_FACING) == CameraCharacteristics.LENS_FACING_FRONT;
    

    Lastly, you have to set the camera with that id:

    CameraManager manager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE);
       try {
           characteristics = manager.getCameraCharacteristics(mCameraId);
       }  catch (CameraAccessException e) {
           e.printStackTrace();
       } 
    

    Note, these are just tips on how to do what you wanna do. For details on how to start a preview and more, refer to: http://developer.android.com/samples/Camera2Basic/index.html