Android中的前闪光灯

时间:2018-09-28 21:11:39

标签: android

我正在开发一个应用程序,当用户按下按钮时,我要在该应用程序上打开手电筒。我知道怎么打开后置闪光灯。
但是我不知道如何在同一应用程序中打开前置摄像头手电筒。有人会指导我该怎么做吗?

1 个答案:

答案 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函数获取前置摄像头的可访问性。通常,前置摄像头位于第一个位置。