可以使用CameraCompat库来实现向后兼容性。
示例代码:
//创建CameraDevice.StateCallback作为摄像机设备打开的回调 private CameraDevice.StateCallback mCameraDeviceStateCallback = new CameraDevice.StateCallback() { @Override public void onOpened(CameraDevice cameraDevice) { //初始化相机设备。 mCameraDevice = cameraDevice; //启动预览 startPreview(); } ... };
//打开摄像机设备方法
private void openCamera() {
CameraManager cameraManager = (CameraManager)getSystemService(Context.CAMERA_SERVICE);
try {
//获取支持向后兼容性的摄像机ID列表
String[] cameraIdList = cameraManager.getCameraIdList();
ArrayList
//在启动预览时使用CameraCompat帮助类检查向后兼容性 private void startPreview() { try { //通过ImageReader获得Surface。 ImageReader imageReader = ImageReader.newInstance(mPreviewSize.getWidth(), mPreviewSize.getHeight(), ImageFormat.YUV_420_888, 2); Surface surface = imageReader.getSurface(); //创建一个CaptureRequest.Builder CaptureRequest.Builder builder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW); //设置目标应用程序Surface builder.addTarget(surface); //使用CameraCompat帮助类确定是否应