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