Android 照相机赢得';t打开/关闭照相机的闪光灯2

Android 照相机赢得';t打开/关闭照相机的闪光灯2,android,flashlight,android-camera2,Android,Flashlight,Android Camera2,我需要有关打开/关闭camera2闪光灯的帮助。代码不工作,拍照时不会打开闪光灯。我试过很多不同的方法,但都没有成功。这是我的密码。请帮忙 MainActivity.java public class MainActivity extends AppCompatActivity { private CameraCaptureSession mSession; private CaptureRequest.Builder mBuilder; private CameraDe

我需要有关打开/关闭camera2闪光灯的帮助。代码不工作,拍照时不会打开闪光灯。我试过很多不同的方法,但都没有成功。这是我的密码。请帮忙

MainActivity.java

public class MainActivity extends AppCompatActivity {
    private CameraCaptureSession mSession;
    private CaptureRequest.Builder mBuilder;
    private CameraDevice mCameraDevice;
    private CameraManager mCameraManager;
    Boolean isOn = false;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (null == savedInstanceState) {
            getFragmentManager().beginTransaction()
                    .replace(R.id.container, Camera2BasicFragment.newInstance())
                    .commit();
        }


        final Button flashOn = (Button) findViewById(R.id.flah_off);
        flashOn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(isOn) {
                    flashOn.setBackgroundResource(R.drawable.flash_on);
                    turnOnFlashLight();
                }else{
                    flashOn.setBackgroundResource(R.drawable.flah_off);
                    turnOffFlashLight();
                }
                isOn = !isOn;
            }
        });

    }

    public void turnOnFlashLight() {
        try {
            mBuilder.set(CaptureRequest.FLASH_MODE, CameraMetadata.FLASH_MODE_TORCH);
            mSession.setRepeatingRequest(mBuilder.build(), null, null);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void turnOffFlashLight() {
        try {
            mBuilder.set(CaptureRequest.FLASH_MODE, CameraMetadata.FLASH_MODE_OFF);
            mSession.setRepeatingRequest(mBuilder.build(), null, null);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

我将此功能用于Camera2上的火炬

@TargetApi(Build.VERSION_CODES.M)
public void toggleMarshmallowFlashlight(boolean enable) {
    try {
        final CameraManager manager = (CameraManager) mContext.getSystemService(Context.CAMERA_SERVICE);
        final String[] list = manager.getCameraIdList();
        manager.setTorchMode(list[0], enable);
    } catch (CameraAccessException e) {
    }
}

我将此功能用于Camera2上的火炬

@TargetApi(Build.VERSION_CODES.M)
public void toggleMarshmallowFlashlight(boolean enable) {
    try {
        final CameraManager manager = (CameraManager) mContext.getSystemService(Context.CAMERA_SERVICE);
        final String[] list = manager.getCameraIdList();
        manager.setTorchMode(list[0], enable);
    } catch (CameraAccessException e) {
    }
}

这是一个非常详尽的解决方案是的,但我需要帮助这是一个非常详尽的解决方案是的,但我需要帮助