You can try the new android.hardware.camera2 package added to API level 21, which replaces the class of obsolete cameras and provides fine-grained control over the functionality of the camera:
Get CameraManager Service
CameraManager manager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);
Get a list of cameras available on your device
String[] cameraIdList = manager.getCameraIdList();
Go through CameraList to select a camera with the desired characteristics.
for(String cameraId:cameraIdList)
{
CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraId);
}
Create a camera callback class with preview requests and still capture
private class CameraCallback extends CameraDevice.StateCallback
{
@Override
public void onOpened(CameraDevice camera)
{
CaptureRequest previewRequest = camera.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW).build();
CaptureRequest stillCaptureRequest = camera.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE).build();
}
}
source
share