我正在编写一个应用程序,在我的Motorola XYBoard上打开固定时间的手电筒。下面是我的一段代码,虽然这段代码适用于摩托罗拉Attrix和三星Galaxy Note 10.1但它不适用于XYBoard。我确实检查了支持的闪光模式,火炬就是其中之一。我已经阅读了关于堆栈溢出的多个讨论,其他人遇到了类似的问题,但我没有尝试过。如果有人帮助我,将会非常有帮助
public void flashLightOn(){
try {
if (getPackageManager().hasSystemFeature(
PackageManager.FEATURE_CAMERA_FLASH)) {
cam = Camera.open();
Parameters p = cam.getParameters();
List<String> abc = p.getSupportedFlashModes();
for (String a : abc){
Log.d("mode: ", a);
}
p.setFlashMode(Parameters.FLASH_MODE_OFF);
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
cam.setParameters(p);
cam.startPreview();
/* cam.autoFocus(new AutoFocusCallback() {
public void onAutoFocus(boolean success, Camera camera) {
}
});*/
} else {
}
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getBaseContext(), "Exception flashLightOn()",
Toast.LENGTH_SHORT).show();
}
}
public void flashLightOff() {
try {
if (getPackageManager().hasSystemFeature(
PackageManager.FEATURE_CAMERA_FLASH)) {
cam.stopPreview();
cam.release();
cam = null;
}
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getBaseContext(), "Exception flashLightOff",
Toast.LENGTH_SHORT).show();
}
}
答案 0 :(得分:0)
为什么不从App商店安装一个火炬之光应用程序,你的应用程序只会使用意图调用该应用程序。
这样可以减少编码!