我目前正在从事相机活动。当我自动切换到前置摄像头时,我设法访问了设备的后置摄像头闪光灯并隐藏了闪光灯切换按钮。但是,我想知道是否有一种方法可以检查辅助闪光灯,因为许多智能手机型号都带有前置摄像头闪光灯,当从不带背光摄像头闪光灯的平板电脑上使用此应用程序时,这也将有所帮助。我的想法是用两个独立的布尔值分别检查前后摄像头闪光灯,如果闪光灯不可用,请将切换按钮设置为不可见。我真的不喜欢显示或隐藏闪光灯按钮,而又不能确保设备的任何相机都装有闪光灯或没有闪光灯的想法。到目前为止,这就是我所拥有的。有任何想法吗?

private boolean hasFlash(Context Context) {
    if (Context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)) {
        return true;
    } else {
        return false;
    }
}


_

 if (!hasFlash(Context)) {
            ImageButton FlashButton = (ImageButton) findViewById(R.id.frnxcameraflashbutton);
                            FlashButton.setVisibility(View.INVISIBLE);
                            FlashButton.setImageResource(R.mipmap.cameraflashoffbutton);
        }

最佳答案

如果您能够使用新的Camera2 API(我认为大多数是21+),则每个摄像机可用的CameraCharacteristics键值映射应指示每个摄像机是否具有相应的闪光灯。例如,您可能只需要检查每个摄像机的FLASH_STATE_UNAVAILABLE标志即可实现目标。

10-08 19:06