我认为没有“前置闪光灯”之类的东西。在这个阶段我唯一能想到的就是前面的通知 LED 灯。即使看着我的三星 S6 Edge 设备,我的相机上也找不到任何前置闪光灯。
以下代码仅适用于后闪光灯。
我相信你需要做三件事。
1 - 检查设备上是否有可用的闪存
2 - 在您的清单中设置相应的权限
3 - 实现代码来操作 Flash 功能
此代码将根据 Flash 功能的可用性返回一个布尔值
context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
接下来是清单文件中的权限
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
第一个权限是摄像头,第二个权限是手电筒,不需要激活摄像头硬件
最后,打开闪光灯的代码
Camera myCamera = Camera.open();
Parameters myParameters = myCamera .getParameters();
myParameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
myCamera.setParameters(p);
myCamera.startPreview();
关闭服务
myCamera.stopPreview();
myCamera.release();
要测试的附加功能
CameraManager cameraManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
try {
String cameraId = cameraManager.getCameraIdList()[0];
cameraManager.setTorchMode(cameraId, true);
flashLightStatus = true;
imageFlashlight.setImageResource(R.drawable.btn_switch_on);
} catch (CameraAccessException e) {
}
这可能有助于从 getCameraIdList 函数获取前置摄像头可访问性。通常前置摄像头在第一位置。