| | |
| | | import android.content.pm.FeatureInfo; |
| | | import android.content.pm.PackageManager; |
| | | import android.hardware.camera2.CameraAccessException; |
| | | import android.hardware.camera2.CameraCharacteristics; |
| | | import android.hardware.camera2.CameraManager; |
| | | import android.os.Build; |
| | | import android.hardware.Camera; |
| | |
| | | FeatureInfo[] features = packageManager.getSystemAvailableFeatures(); |
| | | for (FeatureInfo featureInfo : features) { |
| | | // 判断设备是否支持闪光灯 |
| | | if (packageManager.FEATURE_CAMERA_FLASH.equals(featureInfo.name)) { |
| | | if (PackageManager.FEATURE_CAMERA_FLASH.equals(featureInfo.name)) { |
| | | if (null == mCamera) { |
| | | mCamera = Camera.open(); |
| | | } |
| | |
| | | } |
| | | |
| | | // 关闭手电筒 |
| | | public void cloes() { |
| | | public void close() { |
| | | if (!status) // 如果是已经关闭的状态 不需要打开 |
| | | { |
| | | return; |
| | |
| | | } |
| | | status = false; // 记录手电筒为关闭 |
| | | } |
| | | |
| | | /** |
| | | * 手电筒打开或者关闭 |
| | | * |
| | | * @param isOpen 打开(true)或者关闭(false) |
| | | */ |
| | | public void setOpenOrClose(boolean isOpen) { |
| | | try { |
| | | |
| | | //获取当前手机所有摄像头设备ID |
| | | String[] ids = manager.getCameraIdList(); |
| | | for (String id : ids) { |
| | | CameraCharacteristics c = manager.getCameraCharacteristics(id); |
| | | //查询该摄像头组件是否包含闪光灯 |
| | | Boolean flashAvailable = c.get(CameraCharacteristics.FLASH_INFO_AVAILABLE); |
| | | |
| | | /* |
| | | * 获取相机面对的方向 |
| | | * CameraCharacteristics.LENS_FACING_FRONT 前置摄像头 |
| | | * CameraCharacteristics.LENS_FACING_BACK 后只摄像头 |
| | | * CameraCharacteristics.LENS_FACING_EXTERNAL 外部的摄像头 |
| | | */ |
| | | Integer lensFacing = c.get(CameraCharacteristics.LENS_FACING); |
| | | if (flashAvailable != null && flashAvailable |
| | | && lensFacing != null && lensFacing == CameraCharacteristics.LENS_FACING_BACK) { |
| | | //打开或关闭手电筒 |
| | | manager.setTorchMode(id, isOpen); |
| | | break; |
| | | } |
| | | } |
| | | } catch (CameraAccessException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |