我正在尝试编写一个带有打开/关闭相机手电筒按钮的小 Android 小部件。我知道,那里有成千上万个,但我想学习 Android(小步骤似乎是最好的方法)。
现在我已经阅读了官方文档、网络上的一些免费教程,并在 stackoverflow 上搜索了它。到目前为止,我没有收到任何错误,LogCat 说一切正常。但是,当我在 Galaxy Nexus 上测试应用程序时,开关按应有的方式打开/关闭,但摄像头 LED 没有打开/关闭。
这是我的代码(只有 LED 实际打开/关闭的部分):
if (isLightOn) {
Log.d("receiver", "flashlight is on, disabling it");
if (camera != null) {
param.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(param);
camera.release();
camera = null;
isLightOn = false;
}
} else {
Log.d("receiver", "flashlight is off, enabling it");
camera = Camera.open();
if(camera == null) {
Toast.makeText(context, R.string.no_camera, Toast.LENGTH_SHORT).show();
} else {
// Set the torch flash mode
param.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
try {
camera.setParameters(param);
isLightOn = true;
} catch (Exception e) {
Toast.makeText(context, R.string.no_flash, Toast.LENGTH_SHORT).show();
}
}
}
任何想法为什么这不能按预期工作?