我想以编程方式打开和关闭Android手机的LED或闪光灯,但在三星Google nexus闪光灯不亮。我使用了很多方法,但无法取得好成绩。
Camera mycam = Camera.open();
Parameters p = mycam.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
mycam.setParameters(p);
我使用这些代码并提供所有权限,但问题是相同的,它不适用于三星google nexus。
答案 0 :(得分:0)
你可以尝试这个,它可以帮助你:
private void flashOn() {
camera = Camera.open();
Parameters params = camera.getParameters();
// Build.MODEL.equals("GT-P1000")
if (Build.MANUFACTURER.equalsIgnoreCase("SAMSUNG")
|| Build.MANUFACTURER.equalsIgnoreCase("LG"))
params.setFlashMode(Parameters.FLASH_MODE_ON);
else
params.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(params);
camera.startPreview();
camera.autoFocus(new AutoFocusCallback() {
public void onAutoFocus(boolean success, Camera camera) {
}
});
}
private void flashOff() {
if (camera != null) {
camera.stopPreview();
camera.release();
}
}
并将其添加到您的清单文件中:
<permission
android:name="android.permission.FLASHLIGHT"
android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
android:protectionLevel="normal" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera.flash" />