Android:如何检查设备上是否有闪光灯?

时间:2011-02-07 06:17:57

标签: android

我如何检查设备上的闪光灯?还想知道如何开启/关闭闪光灯?   我已经把代码但现在不能正常工作?   我搜索出这个         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

请告诉我应该使用哪个?
谢谢。

4 个答案:

答案 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.