0

我想以编程方式打开和关闭 Android 手机的 LED 或闪光灯,但在三星 Google Nexus 中,闪光灯没有打开。我使用了很多方法,但不能得到好的结果。

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

我使用这些代码并给予所有许可,但问题是相同的,它不适用于三星 google nexus。

4

1 回答 1

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" />
于 2013-02-21T12:00:26.770 回答