Android api23-25 实现闪光灯控制

来源:互联网 发布:js dom添加点击事件 编辑:程序博客网 时间:2024/05/18 23:25

在网上寻找控制手机闪光灯的案例,发现大部分都是支持api21及以下的代码,这代码并不适用于api25。找了很多资料,最后在github上看到有人用CameraManager来实现。

我仿照着实现了一个ledLight的类,代码如下:

import android.content.Context;import android.hardware.camera2.CameraAccessException;import android.hardware.camera2.CameraManager;import android.widget.Toast;/** * Created by Administrator on 2017/8/21. */public class ledFlash {    Context context;    CameraManager mCameraManager;    String mCameraID;    ledFlash(Context context){        this.context = context;        mCameraManager = (CameraManager)context.getSystemService(Context.CAMERA_SERVICE);        try {            final String[] list = mCameraManager.getCameraIdList();            mCameraID = list[0];        } catch (CameraAccessException e) {            Toast.makeText(context, e.getMessage(), Toast.LENGTH_SHORT).show();        }    }    public void toggle(boolean enable)    {        try {            mCameraManager.setTorchMode(mCameraID, enable);        }catch (Exception e)        {            Toast.makeText(context, e.getMessage(), Toast.LENGTH_SHORT).show();        }    }}
调用代码:

ledFlash lf = new ledFlash(MainActivity.this);lf.toggle(true);