在相机运行时,使用按钮打开/关闭Android闪光灯

时间:2013-01-21 16:05:39

标签: android camera flashlight

我看到有很多问题,但我找不到任何办法。在我的应用程序中,我有自己的相机,有一些选项,还有一个名为btnFlash的按钮,用于在相机运行时打开/关闭相机的闪光灯。我尝试了很多方法,但三星标签和HTC没有任何效果。这是其中之一

ImageButton btnFlash = (ImageButton) findViewById(R.id.btn_flash);
        btnFlash.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

                Context context = getApplicationContext();
                if( context .getPackageManager().hasSystemFeature(getPackageManager().FEATURE_CAMERA_FLASH)) {
                    Parameters params = mCamera.getParameters();
                    if(isFlashOn) {
                        params.setFlashMode(Parameters.FLASH_MODE_OFF);
                        mCamera.setParameters(params);
                        isFlashOn = false;
                    } else {
                        params.setFlashMode(Parameters.FLASH_MODE_ON);
                        mCamera.setParameters(params);
                        isFlashOn = true;
                    }
                }
            }
        });
  1. 有人可以推荐一些好的教程或一些代码吗?
  2. 同样的代码可以在例如HTC但没有在三星上工作?我的意思是我可以为任何类型的Android设备编写一些代码吗?
  3. 提前致谢..

2 个答案:

答案 0 :(得分:2)

浏览此链接。这有助于我在几乎所有设备中实现闪存功能。

导入此SVN项目。

http://code.google.com/p/torch/source/checkout

答案 1 :(得分:0)

我遇到了同样的问题,我认为你应该替换

    params.setFlashMode(Parameters.FLASH_MODE_ON);

用这个

    params.setFlashMode(Parameters.FLASH_MODE_TORCH);

我测试了param

    Parameters.FLASH_MODE_ON
    Parameters.FLASH_MODE_RED_EYE

并遇到同样的问题,我认为问题出现是因为设备没有合适的硬件参数