2

我看到有很多问题与此相关,但我没有找到任何方法。在我的应用程序中,我有自己的带有一些选项的相机,并且还有一个按钮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 上工作,但不能在三星上工作吗?我的意思是我可以为任何类型的安卓设备编写一些代码吗?

提前致谢..

4

2 回答 2

2

通过这个链接。这有助于我在几乎所有设备中实现闪存功能。

导入这个 SVN 项目。

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

于 2013-01-21T16:29:15.013 回答
0

我和你有同样的问题,我认为你应该更换

    params.setFlashMode(Parameters.FLASH_MODE_ON);

有了这个

    params.setFlashMode(Parameters.FLASH_MODE_TORCH);

我测试了参数

    Parameters.FLASH_MODE_ON
    Parameters.FLASH_MODE_RED_EYE

并且有同样的问题,我认为问题的发生是因为设备没有适当的硬件参数

于 2013-09-21T06:53:37.377 回答