Android 有没有办法让用户在安卓系统中获得当前的闪光灯设置?

Android 有没有办法让用户在安卓系统中获得当前的闪光灯设置?,android,android-camera,android-camera-intent,Android,Android Camera,Android Camera Intent,我们可以通过编程方式从本机相机应用程序获取闪光灯设置吗 我的意思是说,例如,如果用户在默认照相机应用程序中干预闪光灯模式,我想读取他在我的应用程序上设置的闪光灯模式,该模式将在后台运行。这可能吗?private boolean hasFlash(){ private boolean hasFlash(){ Parameters params = mCamera.getParameters(); List<String> flashModes = params.getS

我们可以通过编程方式从本机相机应用程序获取闪光灯设置吗

我的意思是说,例如,如果用户在默认照相机应用程序中干预闪光灯模式,我想读取他在我的应用程序上设置的闪光灯模式,该模式将在后台运行。这可能吗?

private boolean hasFlash(){
private boolean hasFlash(){
    Parameters params = mCamera.getParameters();
    List<String> flashModes = params.getSupportedFlashModes();
    if(flashModes == null) {
        return false;
    }

    for(String flashMode : flashModes) {
        if(Parameters.FLASH_MODE_ON.equals(flashMode)) {
            return true;
        }
    }

    return false;
}
Parameters params=mCamera.getParameters(); List flashModes=params.getSupportedFlashModes(); 如果(flashModes==null){ 返回false; } 用于(字符串flashMode:flashModes){ if(参数闪烁模式开启等于(闪烁模式)){ 返回true; } } 返回false; }
要获得当前的flash模式,正如哈希特先生建议的那样,您需要获取FlashMode()。为了获得相同的结果,您可以使用以下代码

Parameters params;
Camera cam;
cam=Camera.open();
params=cam.getParameters();
System.out.println(params.getFlashMode()); 
试试这个,看看是否有效

首先检查是否支持手电筒

如果闪存可用,则返回true;如果没有,则返回false。

检查闪光灯是否自动、打开或关闭,如下所示:

List flashModes=cameraParams.getSupportedFlashModes();
if(flashModes!=null&&flashModes.size()>0)
{
if(cameraParams.getFlashMode().equals(android.hardware.Camera.Parameters.FLASH_MODE_ON))
{
//做些事情。。。
}
else if(cameraParams.getFlashMode().equals(android.hardware.Camera.Parameters.FLASH_MODE_OFF))
{
//做事。。。。。。
}
else if(cameraParams.getFlashMode().equals(android.hardware.Camera.Parameters.FLASH_MODE_TORCH))
{
//做事。。。。。。
}
else if(cameraParams.getFlashMode().equals(android.hardware.Camera.Parameters.FLASH_MODE_AUTO))
{
//做事。。。。。。
}
}

如果我自己创建了一个定制的摄像头应用程序,这将起作用。但是,我正在监视现有的摄像头应用程序,以查看用户是否正在更改现有摄像头应用程序中的摄像头设置。要使用getflashmode(),我不需要先创建一个camera对象并打开它吗?从我一直尝试到现在,它生成了一个异常,因为现有的摄像头应用程序还需要访问我的摄像头对象访问的同一个摄像头。我不需要为此打开摄像头对象?嗨,Niko,我尝试过这种方法。但是,由于我正在尝试从我的应用程序中检查从本机相机应用程序中选择了哪个闪光灯模式,因此出现了一个异常,因为在我的应用程序中声明的相机对象尝试访问相机,而该相机已从本机相机应用程序中访问。所以这种方法不适合我的要求。还有别的办法吗?
context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
 List<String> flashModes = cameraParams.getSupportedFlashModes();

    if(flashModes!=null && flashModes.size()>0)
    {
        if(cameraParams.getFlashMode().equals(android.hardware.Camera.Parameters.FLASH_MODE_ON))
        {
         //DO STUFF...
        }
        else if(cameraParams.getFlashMode().equals(android.hardware.Camera.Parameters.FLASH_MODE_OFF))
        {
        //DO STUFF......
        }
        else if(cameraParams.getFlashMode().equals(android.hardware.Camera.Parameters.FLASH_MODE_TORCH))
        {
        //DO STUFF......
        }
        else if(cameraParams.getFlashMode().equals(android.hardware.Camera.Parameters.FLASH_MODE_AUTO))
        {
        //DO STUFF......
        }
    }