有啥方法可以访问 Android 中的手电筒灯状态。我想以编程方式检查闪光灯是处于开启状态还是关闭状态

Posted

技术标签:

【中文标题】有啥方法可以访问 Android 中的手电筒灯状态。我想以编程方式检查闪光灯是处于开启状态还是关闭状态【英文标题】:Is there any way to access the Torch light status in Android. I want to check whether the flash light is in ON state or OFF state programatically有什么方法可以访问 Android 中的手电筒灯状态。我想以编程方式检查闪光灯是处于开启状态还是关闭状态 【发布时间】:2018-05-24 19:48:35 【问题描述】:

是否可以知道android中闪光灯的状态。我想运行一个循环,在此之前我想知道设备的闪光灯是否处于开/关状态。

【问题讨论】:

请找到这个链接。我希望它能消除你所有的疑问。 Link to Handle Flash Light @Shylesh 试试this.它可能对你有帮助.. @HarshadPrajapati 上面的链接帮助用户打开和关闭 Flash。我希望我的代码检查 Flash 的当前状态。例如,我从通知栏快捷方式打开闪光灯。然后我打开我的应用程序并按下 TEST 按钮,它应该显示 "ON" 状态。 【参考方案1】:

注册torchCallback

        Handler handler =  new Handler(getMainLooper());

        CameraManager mCameraManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);

        CameraManager.TorchCallback torchCallback = new CameraManager.TorchCallback() 

            @Override
            public void onTorchModeChanged(String cameraId, boolean enabled)
                super.onTorchModeChanged(cameraId, enabled);
                boolean currentTorchState = enabled;
            
        ;

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
            mCameraManager.registerTorchCallback(torchCallback, handler);
        

【讨论】:

【参考方案2】:

我认为您无法获得 Flash Light 的状态。

为此,您必须手动管理状态,

boolean isFlashStateOn = false;
.
.
@Override
public void onClick(View v) 
    if (isFlashStateOn ) 
        turnOffFlashLight();
        isFlashStateOn = false;
     else 
        turnOnFlashLight();
        isFlashStateOn = true;
    

【讨论】:

以上是关于有啥方法可以访问 Android 中的手电筒灯状态。我想以编程方式检查闪光灯是处于开启状态还是关闭状态的主要内容,如果未能解决你的问题,请参考以下文章

有啥方法可以访问 chrome for android 中的磁力计输入吗?

手电筒应用程序在后台关闭

Android片段中的手电筒 - SurfaceView

有啥办法可以访问所有的android通知吗?

Android开启手电筒功能(完美适配Android4x,5x,6x)

如何让手电筒应用程序中的手电筒关闭?