This sample demonstrates how to use basic functionalities of Camera2 API. You can learn how to iterate through characteristics of all the cameras attached to the device, display a camera preview, and take pictures.
The Camera2 API provides an interface to individual camera devices connected to an Android device. It replaces the deprecated Camera class.
Use getCameraIdList to get a list of all the available cameras. You can then use getCameraCharacteristics and find the best camera that suits your need (front/rear facing, resolution etc).
Create an instance of CameraDevice.StateCallback and open a camera. It is ready to start camera preview when the camera is opened.
This sample uses TextureView to show the camera preview. Create a CameraCaptureSession and set a repeating CaptureRequest to it.
Still image capture takes several steps. First, you need to lock the focus of the camera by updating the CaptureRequest for the camera preview. Then, in a similar way, you need to run a precapture sequence. After that, it is ready to capture a picture. Create a new CaptureRequest and call [capture][7]. Don't forget to unlock the focus when you are done.
[7]: https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#capture(android.hardware.camera2.CaptureRequest, android.hardware.camera2.CameraCaptureSession.CaptureCallback, android.os.Handler)
- Android SDK 28
- Android Build Tools v28.0.3
- Android Support Repository
This sample uses the Gradle build system. To build this project, use the "gradlew build" command or use "Import Project" in Android Studio.
- Google+ Community: https://plus.google.com/communities/105153134372062985968
- Stack Overflow: http://stackoverflow.com/questions/tagged/android
If you've found an error in this sample, please file an issue: https://github.com/googlesamples/android-Camera2Basic
Patches are encouraged, and may be submitted by forking this project and submitting a pull request through GitHub. Please see CONTRIBUTING.md for more details.