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
安卓程序如何控制闪光灯开关
这里我用一个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


浙公网安备 33010602011771号