一、打开手电筒
启动类
package com.dshvv.myapplication;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.view.View;public class MainActivity extends AppCompatActivity {FlashUtil ft = new FlashUtil();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}/** 按钮点击事件*/public void buttonClick(View view) {ft.switchFlash(this);}}
手电筒工具类
package com.dshvv.myapplication;import android.annotation.TargetApi;import android.content.Context;import android.hardware.camera2.CameraManager;import android.os.Build;/** 手电筒(开启闪光灯)工具类* 使用前,可能需要先申请闪光灯权限 <uses-permission android:name="android.permission.FLASHLIGHT" />* 部分手机需要摄像头权限: <uses-permission android:name="android.permission.CAMERA" /> 注:注意android5.0以上权限调用* 使用前,请先用hasFlashlight()方法判断设备是否有闪光灯* 务必在activity或fragment的onDestroy()方法里调用lightsOff()方法,确保Camera被释放** 使用方法* 开启sos:new FlashlightUtils().sos()* 开启闪光灯: new FlashlightUtils().lightsOn()*/public class FlashUtil {private Boolean isOpen = false;private CameraManager manager ;/** 开关手电筒(安卓6.0以上)* return 返回当前闪光灯开启状态*/@TargetApi(Build.VERSION_CODES.M)protected boolean switchFlash(Context context){try{manager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);if(isOpen){manager.setTorchMode("0", false);// "0"是主闪光灯this.isOpen = false;}else{manager.setTorchMode("0", true);this.isOpen = true;}}catch(Exception e){}return this.isOpen;}}
