Android API 16 级及更高级别的 Torch App

Android API Level 16 and higher Torch App

我找到了这个问题,但它对我不起作用。 (没有任何反应。在 Wiko Rainbow Jam 上测试) Android - Camera2 : The easiest way to turn on the torch light

我的应用程序必须 运行 分钟。 API 16级!有没有我可以使用的 SupportCameraManager 或库(在 Apache 下)?

您可以使用 this.

初始化 NoobCameraManager 单例。

NoobCameraManager.getInstance().init(this);

您可以选择设置调试日志记录的日志级别。日志记录使用 LumberJack 库。默认日志级别为 LogLevel.None

NoobCameraManager.getInstance().init(this, LogLevel.Verbose);

之后你只需要调用单例来打开或关闭相机闪光灯。

NoobCameraManager.getInstance().turnOnFlash();
NoobCameraManager.getInstance().turnOffFlash();

您可以自己处理访问相机的运行时权限,也可以让库为您完成

NoobCameraManager.getInstance().takePermissions();

注意:即使您未明确调用 takePermissions(),库也会获取权限(如果您尚未获取权限)。此行为将来可能会改变。

切换 Flash 也很容易

NoobCameraManager.getInstance().toggleFlash();

最好在完成后释放所有资源。

NoobCameraManager.getInstance().release();

解决方案:问题是我只在开灯和关灯时获取相机的参数。这显然也必须在构造函数或覆盖 onStart 方法中完成。

@Override
protected void onStart() {
    super.onStart();

    camera = Camera.open(); //Also Call this
    params = camera.getParameters(); //and this, in the Constructor
}

作为字段:

private Camera camera;
Parameters params;

然后您可以使用这些代码片段启动手电筒:Android - Camera2 : The easiest way to turn on the torch light