實例關鍵代碼如下:
Camera mCamera;
Parameters mParameters;
// 檢測當前設備是否配置閃光燈
boolean checkFlashlight(View view) {
if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)) {
Toast.makeText(this, "當前設備沒有閃光燈", Toast.LENGTH_LONG).show();
return false;
}
return true;
}
// 打開閃光燈
void openFlashlight() {
try {
mCamera = Camera.open();
int textureId = 0;
mCamera.setPreviewTexture(new SurfaceTexture(textureId));
mCamera.startPreview();
mParameters = mCamera.getParameters();
mParameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
mCamera.setParameters(mParameters);
} catch (Exception e) {
// TODO: handle exception
}
}
// 關閉閃光燈
void closeFlashlight() {
if (mCamera != null) {
mParameters = mCamera.getParameters();
mParameters.setFlashMode(Parameters.FLASH_MODE_OFF);
mCamera.setParameters(mParameters);
mCamera.stopPreview();
mCamera.release();
mCamera = null;
}
}