Android使用设备闪存作为火炬

时间:2012-10-29 07:45:11

标签: java android android-camera

需要使用内置设备相机闪光灯作为手电筒。 很遗憾,我无法访问Android设备,因此我只能使用Android模拟器。 如何验证我的代码是否有效?

我多次尝试使用不同的方式更新我的应用以访问相机闪光灯以及每次应用程序崩溃时。

我的应用最低操作系统版本是2.2,

目前我正在使用以下代码


private void turnFlashOn() {
        camera = Camera.open();
        Parameters p = camera.getParameters();
        p.setFlashMode(Parameters.FLASH_MODE_TORCH);
        camera.setParameters(p);
        camera.startPreview();
    }

    private void turnFlashOff() {
        camera = Camera.open();
        Parameters p = camera.getParameters();
        p.setFlashMode(Parameters.FLASH_MODE_OFF);
        camera.setParameters(p);
        camera.stopPreview();
    }

尚未测试过。

您使用相机闪光灯的方式是什么?

谢谢!

2 个答案:

答案 0 :(得分:1)

这里的前两个错误是您已经两次调用Camera.open()并且从未关闭它。您需要在onResume()中将其打开并在onPause()中将其关闭,然后在您获得的Camera句柄上进行操作。

答案 1 :(得分:0)

您可以在模拟器和模拟相机类(使用jmockit)上进行调试,但您必须小心 - 并非真实设备上的每个相机都支持手电筒模式(或根本没有闪光灯) - 因此您必须检查是否相机对象支持此功能。

一旦你的代码工作正常,你仍然需要在真实设备上测试它 (提示:如果您礼貌地询问并在网络上某处提供签名的APK以便人们可以安装它,您可以在Android开发者邮件列表上招募测试人员)