0

プログラムでAndroid携帯のLEDまたはフラッシュをオン/オフしたいのですが、Samsung Google nexusではフラッシュがオンになっていません。私はそれに多くの方法を使用しますが、良い結果が得られません。

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

私はこれらのコードを使用し、すべての許可も与えますが、問題は同じで、Samsung 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 に答える