我正在开发一个应用程序,当用户按下按钮时,我要在该应用程序上打开手电筒。我知道怎么打开后置闪光灯。
但是我不知道如何在同一应用程序中打开前置摄像头手电筒。有人会指导我该怎么做吗?
答案 0 :(得分:1)
我不认为有“前闪光灯”之类的东西。在此阶段,我唯一能想到的就是前面的Notification LED灯。即使看着我的Samsung 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函数获取前置摄像头的可访问性。通常,前置摄像头位于第一个位置。