闲着无事网上看了一个手电筒的实现,收藏一下。
import android.app.Activity;
import android.content.Context;
import android.hardware.Camera;
import android.hardware.camera2.CameraManager;
import android.os.Build;
import android.os.Bundle;
import android.widget.CompoundButton;
import android.widget.ToggleButton;
public class MainActivity extends Activity {
private ToggleButton toggleButton;
private CameraManager manager;
private Camera camera = null;
private Camera.Parameters parameters = null;
public static boolean kaiguan = true; // 定义开关状态,状态为false,打开状态,状态为true,关闭状态
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toggleButton = (ToggleButton) findViewById(R.id.toggleButton);
manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
toggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { //android6.0调用的手电筒接口
try {
manager.setTorchMode("0", isChecked);
} catch (Exception e) {
e.printStackTrace();
}
} else {
//低于6.0系统的手电筒
if (isChecked) {
camera = Camera.open();
parameters = camera.getParameters();
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);// 开启
camera.setParameters(parameters);
camera.startPreview();
} else {
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);// 关闭
camera.setParameters(parameters);
camera.stopPreview();
camera.release();
}
}
}
});
}
@Override
protected void onPause() {
super.onPause();
}
}