在网上寻找控制手机闪光灯的案例,发现大部分都是支持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);