android 實現手電筒功能
阿新 • • 發佈:2019-01-24
1.AndroidManifest.xml 中新增許可權
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera" />
2.程式控制
// 獲得Camera物件,通過Camera.open()開啟攝像頭。 Camera camera = Camera.open();
//開啟閃光燈 public static void turnLightOn(Camera mCamera) { if (mCamera == null) { return; } Parameters parameters = mCamera.getParameters(); if (parameters == null) { return; } List<String> flashModes = parameters.getSupportedFlashModes(); // Check if camera flash exists if (flashModes == null) { // Use the screen as a flashlight (next best thing) return; } String flashMode = parameters.getFlashMode(); if (!Parameters.FLASH_MODE_TORCH.equals(flashMode)) { // Turn on the flash if (flashModes.contains(Parameters.FLASH_MODE_TORCH)) { parameters.setFlashMode(Parameters.FLASH_MODE_TORCH); mCamera.setParameters(parameters); } else { } } }
//關閉閃光燈 public static void turnLightOff(Camera mCamera) { if (mCamera == null) { return; } Parameters parameters = mCamera.getParameters(); if (parameters == null) { return; } List<String> flashModes = parameters.getSupportedFlashModes(); String flashMode = parameters.getFlashMode(); // Check if camera flash exists if (flashModes == null) { return; } if (!Parameters.FLASH_MODE_OFF.equals(flashMode)) { // Turn off the flash if (flashModes.contains(Parameters.FLASH_MODE_OFF)) { parameters.setFlashMode(Parameters.FLASH_MODE_OFF); mCamera.setParameters(parameters); } else { Log.e(TAG, "FLASH_MODE_OFF not supported"); } } }
//退出閃光燈釋放Camear物件
camera.release();