我写了一个简单的手电筒应用程序,我已经在HTC Sensation,Nexus 7,HTC One,Moto X,Galaxy S3,Galaxy S4和Nexus 5上进行了测试。唯一不起作用的是Nexus 5.它不会抛出异常,因此找出错误是很困难的。
以下是我一直在使用的代码,但是:
sCamera = Camera.open();
sParameters = sCamera.getParameters();
sParameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
sCamera.setParameters(sParameters);
sCamera.startPreview();
以下是LogCat应该打开LED时发生的情况的屏幕截图:http://i.imgur.com/vXn5PoH.png
我已经从Nexus 5中提取了闪光模式列表,它说它们是:开,关,自动,火炬和红眼。这些都是预期的。我已经在开启,关闭和火炬之间进行了测试,但是没有任何东西能让灯光闪烁。我知道LED没有损坏,因为其他手电筒应用程序工作正常。
答案 0 :(得分:8)
听起来就像Syed提到的那样......尝试按如下方式设置表面视图:
try {
sCamera.setPreviewTexture(new SurfaceTexture(0));
} catch (IOException ex) {
// Ignore
}