我写了一个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上运行它时它没有用。
我无法理解这里的问题。有人可以帮忙吗?
答案 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();
}
}