如何在Android中开启和关闭LED指示灯?

时间:2013-02-21 10:51:04

标签: android flash camera led

我想以编程方式打开和关闭Android手机的LED或闪光灯,但在三星Google nexus闪光灯不亮。我使用了很多方法,但无法取得好成绩。

 Camera mycam = Camera.open();
                 Parameters p = mycam.getParameters();
                 p.setFlashMode(Parameters.FLASH_MODE_TORCH);
                 mycam.setParameters(p);

我使用这些代码并提供所有权限,但问题是相同的,它不适用于三星google nexus。

1 个答案:

答案 0 :(得分:0)

你可以尝试这个,它可以帮助你:

private void flashOn() {
        camera = Camera.open();
        Parameters params = camera.getParameters();
        // Build.MODEL.equals("GT-P1000")
        if (Build.MANUFACTURER.equalsIgnoreCase("SAMSUNG")
                || Build.MANUFACTURER.equalsIgnoreCase("LG"))
            params.setFlashMode(Parameters.FLASH_MODE_ON);
        else
            params.setFlashMode(Parameters.FLASH_MODE_TORCH);
        camera.setParameters(params);
        camera.startPreview();
        camera.autoFocus(new AutoFocusCallback() {
            public void onAutoFocus(boolean success, Camera camera) {
            }
        });
    }

    private void flashOff() {
        if (camera != null) {
            camera.stopPreview();
            camera.release();
        }
    }

并将其添加到您的清单文件中:

<permission
        android:name="android.permission.FLASHLIGHT"
        android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
        android:protectionLevel="normal" />

    <uses-permission android:name="android.permission.CAMERA" />

    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />
    <uses-feature android:name="android.hardware.camera.flash" />