android 实现手电筒基本功能

1.添加权限

<uses-permission android:name="android.permission.FLASHLIGHT" /> 
 <uses-permission android:name="android.permission.CAMERA"/>
2.获得Camera

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 exists
11     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 flash 18 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 exists
12   if (flashModes == null) {
13     return;
14   }
15   if (!Parameters.FLASH_MODE_OFF.equals(flashMode)) {
16   // Turn off the flash
17    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();
而且这里有一个细节需要注意,并不是关闭闪光灯之后释放资源,而是在我们的应用不用的时候再释放,不然我们关闭之后释放,然后再打开的话就会产生异常的了
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值