我如何检查设备上的闪光灯?还想知道如何开启/关闭闪光灯?
我已经把代码但现在不能正常工作?
我搜索出这个
http://gitorious.org/rowboat/frameworks-base/commit/eb9cbb8fdddf4c887004b20b504083035d57a15f
http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/com/android/server/LightsService.java#LightsService
请告诉我应该使用哪个?
谢谢。
答案 0 :(得分:21)
您可以使用以下
context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
如果闪光灯可用则返回true,否则返回false。
有关详细信息,请参阅http://developer.android.com/reference/android/content/pm/PackageManager.html。
答案 1 :(得分:5)
boolean hasFlash =this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
或
public boolean hasFlash() {
if (camera == null) {
return false;
}
Camera.Parameters parameters = camera.getParameters();
if (parameters.getFlashMode() == null) {
return false;
}
List<String> supportedFlashModes = parameters.getSupportedFlashModes();
if (supportedFlashModes == null || supportedFlashModes.isEmpty() || supportedFlashModes.size() == 1 && supportedFlashModes.get(0).equals(Camera.Parameters.FLASH_MODE_OFF)) {
return false;
}
return true;
}
答案 2 :(得分:3)
首先,您获得支持的闪光模式:
camera = Camera.open(i); // Introduced in API level 9
parameters = camera.getParameters();
String[] flashModes = parameters.getSupportedFlashModes();
然后检查此数组是否包含正确的常量,如:&#34; auto&#34;,&#34; on&#34;,&#34; off&#34;。
更多信息: http://developer.android.com/reference/android/hardware/Camera.Parameters.html#FLASH_MODE_AUTO
答案 3 :(得分:0)
这可以帮助完全打开/关闭设备的闪光灯。这让我感到满意,希望对你也有用。
开启相机闪光灯
camera = Camera.open();
Parameters p = camera.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
camera.startPreview();
关闭相机闪光灯
camera = Camera.open();
Parameters p = camera.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
camera.stopPreview();
将此权限放入清单文件
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
有关详细信息,请访问HERE.