首选开启闪光灯需要获取相机的权限
<!-- 控制闪光灯的权限 -->
<uses-permission android:name="android.permission.CAMERA" />
使用的这个类已经过时了但是还是可以用
/**
* 打开闪光灯
*/
@SuppressWarnings("deprecation")
private void openLight() {
camera = Camera.open();
camera.startPreview();
Parameters parameters = camera.getParameters();
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
}
关闭闪光灯
/**
* 关闭闪光灯
*/
@SuppressWarnings("deprecation")
private void closeLight() {
Parameters parameters = camera.getParameters();
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(parameters);
camera.release();
camera = null;
}
调节屏幕的亮度
/**
* 屏幕亮度调节
*
* @param context
* @param level
*/
private void setLight(Activity context, int level) {
WindowManager.LayoutParams lp = context.getWindow().getAttributes();
lp.screenBrightness = Float.valueOf(level) * (1f / 255f);
context.getWindow().setAttributes(lp);
}
其中前一个参数传入当前Activity.this,后一个传入灯的亮度等级,
switch (level) {
case "1":
setLight(MainActivity.this, 51);
break;
case "2":
setLight(MainActivity.this, 102);
break;
case "3":
setLight(MainActivity.this, 153);
break;
case "4":
setLight(MainActivity.this, 204);
break;
}