【发布时间】:2013-12-02 04:17:15
【问题描述】:
我们可以通过编程方式从本机相机应用程序获取闪光灯设置吗?
我的意思是说,例如,如果用户在默认相机应用程序中干预闪光灯模式,我想读取他设置的闪光灯模式我的应用,在后台运行。这可能吗?
【问题讨论】:
标签: android android-camera android-camera-intent
我们可以通过编程方式从本机相机应用程序获取闪光灯设置吗?
我的意思是说,例如,如果用户在默认相机应用程序中干预闪光灯模式,我想读取他设置的闪光灯模式我的应用,在后台运行。这可能吗?
【问题讨论】:
标签: android android-camera android-camera-intent
为了获得当前的闪光模式,正如 Harshit 先生所建议的,您需要 getFlashMode()。为了获得相同,您可以使用以下代码
Parameters params;
Camera cam;
cam=Camera.open();
params=cam.getParameters();
System.out.println(params.getFlashMode());
试试这个,看看是否可行...
【讨论】:
private boolean hasFlash(){
Parameters params = mCamera.getParameters();
List<String> flashModes = params.getSupportedFlashModes();
if(flashModes == null) {
return false;
}
for(String flashMode : flashModes) {
if(Parameters.FLASH_MODE_ON.equals(flashMode)) {
return true;
}
}
return false;
}
【讨论】:
首先检查是否支持闪光灯
context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
如果闪存可用则返回 true,否则返回 false。
检查闪光灯是AUTO、ON还是OFF:
List<String> flashModes = cameraParams.getSupportedFlashModes();
if(flashModes!=null && flashModes.size()>0)
{
if(cameraParams.getFlashMode().equals(android.hardware.Camera.Parameters.FLASH_MODE_ON))
{
//DO STUFF...
}
else if(cameraParams.getFlashMode().equals(android.hardware.Camera.Parameters.FLASH_MODE_OFF))
{
//DO STUFF......
}
else if(cameraParams.getFlashMode().equals(android.hardware.Camera.Parameters.FLASH_MODE_TORCH))
{
//DO STUFF......
}
else if(cameraParams.getFlashMode().equals(android.hardware.Camera.Parameters.FLASH_MODE_AUTO))
{
//DO STUFF......
}
}
【讨论】: