在所有 Android 台设备中控制手电筒
Controlling Flashlight in All Android devices
我正在使用相机包开发 android 应用程序来打开闪光灯,如下所示:
Camera mCamera = Camera.open();
List<String> flashModes = mCamera.getParameters().getSupportedFlashModes();
if(flashModes != null && flashModes.contains(Parameters.FLASH_MODE_TORCH)){
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
mCamera.setParameters(parameters);
} else if (flashModes != null && flashModes.contains(Parameters.FLASH_MODE_ON)){
parameters.setFlashMode(Parameters.FLASH_MODE_ON);
mCamera.setParameters(parameters);
}
if(!previewing){
mCamera.startPreview();
previewing = true;
}
检查支持的相机闪光灯模式,并进行调整。它适用于三星 Android 设备和其他一些设备,但不适用于 LG V20、LG V30 和 Mi Android。我搜索了这个并尝试了:
mCamera.autoFocus(Camera.AutoFocusCallback)
mCamera.setPreviewTexture(SurfaceTexture)
但没有任何效果。所以我为 api>23 使用了 Camera2 包,例如:
CameraManager mCameraManager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);
mCameraManager.setTorchMode("0", true);
它有效,但在三星设备中,会显示一条通知"Flashlight turned on",这很烦人。
所以,我需要一种方法来为所有带有 Camera 包的设备打开手电筒,或者不显示 "Flashlight turned on" 使用 Camera2 包的通知。
期待您的回复,谢谢。
下面的答案link救了我的命!
SurfaceView 对于某些设备来说是必不可少的。
LED flashlight on Galaxy Nexus controllable by what API?
我正在使用相机包开发 android 应用程序来打开闪光灯,如下所示:
Camera mCamera = Camera.open();
List<String> flashModes = mCamera.getParameters().getSupportedFlashModes();
if(flashModes != null && flashModes.contains(Parameters.FLASH_MODE_TORCH)){
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
mCamera.setParameters(parameters);
} else if (flashModes != null && flashModes.contains(Parameters.FLASH_MODE_ON)){
parameters.setFlashMode(Parameters.FLASH_MODE_ON);
mCamera.setParameters(parameters);
}
if(!previewing){
mCamera.startPreview();
previewing = true;
}
检查支持的相机闪光灯模式,并进行调整。它适用于三星 Android 设备和其他一些设备,但不适用于 LG V20、LG V30 和 Mi Android。我搜索了这个并尝试了:
mCamera.autoFocus(Camera.AutoFocusCallback)
mCamera.setPreviewTexture(SurfaceTexture)
但没有任何效果。所以我为 api>23 使用了 Camera2 包,例如:
CameraManager mCameraManager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);
mCameraManager.setTorchMode("0", true);
它有效,但在三星设备中,会显示一条通知"Flashlight turned on",这很烦人。
所以,我需要一种方法来为所有带有 Camera 包的设备打开手电筒,或者不显示 "Flashlight turned on" 使用 Camera2 包的通知。
期待您的回复,谢谢。
下面的答案link救了我的命!
SurfaceView 对于某些设备来说是必不可少的。
LED flashlight on Galaxy Nexus controllable by what API?