我正在编写一个应用程序来在我的 Motorola XYBoard 上打开手电筒一段固定的时间。下面是我的一段代码,虽然这段代码适用于摩托罗拉 Attrix 和三星 Galaxy Note 10.1,但它不适用于 XYBoard。我确实检查了支持的闪光模式,手电筒就是其中之一。我已经阅读了有关堆栈溢出的多个讨论,其中其他人遇到了类似的问题,但我没有尝试过任何工作。如果有人帮助我会非常有帮助
公共无效 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();
}
}