Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在android中以不同模式打开手电筒_Java_Android_Flash_Parameters_Flashlight - Fatal编程技术网

Java 在android中以不同模式打开手电筒

Java 在android中以不同模式打开手电筒,java,android,flash,parameters,flashlight,Java,Android,Flash,Parameters,Flashlight,下面的代码会在不支持torch的摩托罗拉razor等android设备上运行吗?有没有人能测试一下有没有这样的电话,请告诉我 提前谢谢 if (!isFlashOn) { if (camera == null || params == null) { return; } List<String> flashModes = params.getSupportedF

下面的代码会在不支持torch的摩托罗拉razor等android设备上运行吗?有没有人能测试一下有没有这样的电话,请告诉我

提前谢谢

       if (!isFlashOn) {
           if (camera == null || params == null) {
               return;
             }     
           List<String> flashModes = params.getSupportedFlashModes();
           if(flashModes.contains(Parameters.FLASH_MODE_TORCH)){

          try { 
                   params = camera.getParameters();
                   params.setFlashMode(Parameters.FLASH_MODE_TORCH);
                   camera.setParameters(params);
                   camera.startPreview();
                   toggleButtonImage();
                   isFlashOn = true;

           }catch (RuntimeException e) {
            }

           }

           else {
                    params = camera.getParameters();
                    params.setFlashMode(Parameters.FLASH_MODE_ON);
                    camera.setParameters(params);
                    camera.startPreview();
                    toggleButtonImage();
                    isFlashOn = true;
           }
           toggleButtonImage();
           isFlashOn = true;

       }

   }

它适用于摩托罗拉g和galaxy S4(支持火炬)

是,如果您检查该设备是否支持火炬。但是你可能会遇到一个在安卓系统中非常普遍的特定于设备的问题。您可以在帖子中找到更多信息。

如果您的设备支持不同的闪光灯模式,您可以在不同的模式下打开闪光灯。您可以从这个开源相机代码中获取代码。

您应该检查受支持的闪存模式以避免出现异常,setFlashMode方法检查受支持的模式,但使用此方法进行检查有助于在UI上设置闪存模式按钮或视图

public List<String> getSupportedFlashModes() {
    return params.getSupportedFlashModes();
}
但您的设备可能无法使用这些闪存模式中的某些或任何一种,请在使用前进行检查。 从闪烁模式中选择后,可以使用此方法设置闪烁模式

public synchronized void setFlashMode(String flashMode) {
        Camera.Parameters params = mCamera.getParameters();
        if (cameraId == Camera.CameraInfo.CAMERA_FACING_BACK && params.getSupportedFlashModes() != null
            && params.getSupportedFlashModes().contains(flashMode)) {
        params.setFlashMode(flashMode);
        mCamera.setParameters(params);
    }
}

@Kevin TeslaCoil既然你有这方面的经验,你能看一看吗?我想如果有人能提供4种可能的解决方案来打开闪光灯<代码>红眼、自动、打开、手电筒详细谢谢,虽然一切都很混乱,功能太多,但它确实包含了我要找的!
Camera.Parameters.FLASH_MODE_AUTO, Camera.Parameters.FLASH_MODE_OFF, Camera.Parameters.FLASH_MODE_ON, Camera.Parameters.FLASH_MODE_RED_EYE, Camera.Parameters.FLASH_MODE_TORCH
public synchronized void setFlashMode(String flashMode) {
        Camera.Parameters params = mCamera.getParameters();
        if (cameraId == Camera.CameraInfo.CAMERA_FACING_BACK && params.getSupportedFlashModes() != null
            && params.getSupportedFlashModes().contains(flashMode)) {
        params.setFlashMode(flashMode);
        mCamera.setParameters(params);
    }
}