Android 控制闪光灯

Android 控制闪光灯

 https://www.cnblogs.com/xingfuzzhd/p/3360633.html

首先闪光灯可以用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 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();

 

源代码:Flashlight.7z

 
分类: Android

安卓程序如何控制闪光灯开关

原创 2015年02月28日 17:07:37

这里我用一个ControlFlash类来控制闪光灯,其主要原理是利用相机来控制闪光灯的模式,简单明了,代码如下。 
当然要在AndroidManifest.xml中加如下权限才能使用。 
权限如下:

    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.FLASHLIGHT"/>
  • 1
  • 2

代码如下:

import android.hardware.Camera;
import android.hardware.Camera.Parameters;

public class ControlFlash {
    public Camera camera=null;
    public Camera.Parameters parameters=null;
    public boolean IsHaveFlash()//判断设备是否有闪光灯
    {
        return !getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
    }
    public ControlFlash() {//初始化
        // TODO 自动生成的构造函数存根
        camera=Camera.open();
        parameters=camera.getParameters();
    }
    public void open() {//打开闪光灯
    if(IsHaveFlash)
        {
        //设备不支持闪光灯
         return;
         }
        parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);//设置闪光灯为手电筒模式
        camera.setParameters(parameters);
        camera.startPreview();
    }
    public void close()//关闭闪光灯
    {
        parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
        camera.setParameters(parameters);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
版权声明:本文为博主原创文章,转载请标明来自于http://blog.csdn.net/venusic。 https://blog.csdn.net/venusic/article/details/43987669
 
posted @ 2018-04-01 17:35  sky20080101  阅读(323)  评论(0)    收藏  举报