Android FlashLight应用程序

时间:2015-07-12 10:35:06

标签: java android

我写了一个Android Flash Light应用程序,但这似乎表现出一些奇怪的行为。

单击“打开”按钮时调用的代码是

public void flashLightOn(View view){
        try {
            if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH))
            cam = Camera.open(0);
            Camera.Parameters p = cam.getParameters();
            p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
            cam.setParameters(p);
            cam.startPreview();
        }catch (Exception e){
            e.printStackTrace();
        }
    }

现在,奇怪的是这个应用程序在某些手机上运行正常,而在其他手机上无效。

我已经在我的OnePlus One和摩托罗拉Droid Mini上尝试过它,并且它们都可以正常工作,但是当我在摩托罗拉Droid RAZR和Moto E上运行它时它没有用。

我无法理解这里的问题。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

用以下代码替换您的代码:

public void flashLightOn(View view){
        try {
            if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH))
{ // you don't added this
            cam = Camera.open(0);
            Camera.Parameters p = cam.getParameters();
            p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
            cam.setParameters(p);
            cam.startPreview();
} // and this
        }catch (Exception e){
            e.printStackTrace();
        }
    }