Android 控制闪光灯
16lz
2021-01-23
首先闪光灯可以用android.hardware.camera来控制。
1.添加权限
1 <uses-permission android:name="android.permission.FLASHLIGHT" />2 3 <uses-permission android:name="android.permission.CAMERA"/>4 5 <uses-feature android:name="android.hardware.camera" />
2.获得Camera对象,通过Camera.open()开启摄像头。
Camera camera = Camera.open();
3.打开闪光灯
1 public static void turnLightOn(Camera mCamera) { 2 if (mCamera == null) { 3 return; 4 } 5 Parameters parameters = mCamera.getParameters(); 6 if (parameters == null) { 7 return; 8 } 9 List<String> flashModes = parameters.getSupportedFlashModes();10 // Check if camera flash exists11 if (flashModes == null) {12 // Use the screen as a flashlight (next best thing)13 return;14 }15 String flashMode = parameters.getFlashMode();
16 if (!Parameters.FLASH_MODE_TORCH.equals(flashMode)) {17 // Turn on the flash18 if (flashModes.contains(Parameters.FLASH_MODE_TORCH)) {19 parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);20 mCamera.setParameters(parameters);21 } else {22 }23 }24 }
4.关闭闪光灯
1 public static void turnLightOff(Camera mCamera) { 2 if (mCamera == null) { 3 return; 4 } 5 Parameters parameters = mCamera.getParameters(); 6 if (parameters == null) { 7 return; 8 } 9 List<String> flashModes = parameters.getSupportedFlashModes();10 String flashMode = parameters.getFlashMode();11 // Check if camera flash exists12 if (flashModes == null) {13 return;14 }15 if (!Parameters.FLASH_MODE_OFF.equals(flashMode)) {16 // Turn off the flash17 if (flashModes.contains(Parameters.FLASH_MODE_OFF)) {18 parameters.setFlashMode(Parameters.FLASH_MODE_OFF);19 mCamera.setParameters(parameters);20 } else {21 Log.e(TAG, "FLASH_MODE_OFF not supported");22 }23 }24 }
5.关闭闪光灯后记得释放Camear对象
camera.release();
源代码:Flashlight.7z
更多相关文章
- Android 多线程之synchronized锁住的是代码还是对象(二)
- Android Handler机制5之Message简介与消息对象对象池
- Android 开启闪光灯做手电筒 源码
- Android 对象序列化之你不知道的 Serializable
- Android 对象序列化之 Parcelable 取代 Serializable ?
- Android 对象序列化之追求完美的 Serial
- 带你了解CLR是如何创建运行时对象?
- lambda表达式进行对象结合操作的实例详解
- 值类型对象的两种表示形式