Android(安卓)打开关闭闪光灯工具类
16lz
2021-12-04
整合了个Android闪光灯工具类
API23以上使用Camera2,API23以下使用旧版的Camera。
直接上代码
API23以上使用Camera2,API23以下使用旧版的Camera。
直接上代码
import android.content.Context;import android.content.pm.PackageManager;import android.hardware.Camera;import android.hardware.camera2.CameraAccessException;import android.hardware.camera2.CameraManager;import android.os.Build;public class FlashlightHelper { private boolean flashlightAvailable; private Camera camera; private CameraManager cameraManager; private String cameraId; public FlashlightHelper(Context context) { flashlightAvailable = context.getApplicationContext().getPackageManager() .hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { cameraManager = (CameraManager) context.getApplicationContext().getSystemService(Context.CAMERA_SERVICE); try { if (cameraManager != null) { cameraId = cameraManager.getCameraIdList()[0]; } } catch (CameraAccessException e) { e.printStackTrace(); } } } /** * 开启闪光灯 * * @return 是否开启成功 */ public boolean open() { if (!flashlightAvailable) { return false; } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { try { cameraManager.setTorchMode(cameraId, true); return true; } catch (CameraAccessException e) { e.printStackTrace(); return false; } } else { try { camera = Camera.open(); camera.startPreview(); Camera.Parameters parameters = camera.getParameters(); parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); camera.setParameters(parameters); return true; } catch (Exception e) { e.printStackTrace(); return false; } } } /** * 关闭闪光灯 * * @return 是否关闭成功 */ public boolean close() { if (!flashlightAvailable) { return false; } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { try { cameraManager.setTorchMode(cameraId, false); return true; } catch (CameraAccessException e) { e.printStackTrace(); return false; } } else { try { if (camera != null) { Camera.Parameters parameters = camera.getParameters(); parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF); camera.setParameters(parameters); camera.stopPreview(); camera.release(); camera = null; } else { return false; } return true; } catch (Exception e) { e.printStackTrace(); return false; } } }}
更多相关文章
- Android-- 输入法键盘控制
- android studio 关闭log 打印
- Android中网络使用
- Android之手机振动的设置
- Andriod开发之浏览器开发(WebView)
- android9.0 关闭launcher界面的搜索框
- android 刚进入activity 时关闭输入法
- Android(安卓)Studio安装app 报错的问题It is possible that thi
- Android(安卓)EditText 代码实现键盘弹出打开和关闭工具类