Функциональность Flash Torch не работает через приложение-виджет в Nexus 5

Flash нормально включается из приложения (добавлено surface_view в макет), когда я пытаюсь включить flash через app-widget, он не работает. Я использовал Camera и SurfaceView Вот код, который я использую

Camera mCamera;
SurfaceView preview;
mCamera = Camera.open();
mCamera.setPreviewDisplay(preview.getCameraHolder());
Parameters params = mCamera.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_TORCH);
mCamera.setParameters(params);  
mCamera.startPreview();

В Manifest добавлены разрешения и функции:

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
<uses-feature android:name="android.hardware.camera.flash" android:required="false" />

1 ответ

Камера нуждается в поверхности, чтобы держаться, чтобы открыть
Фонарик... однако SurfaceView нельзя применить к виджету. Так что это то, что вам нужно.....

Добавьте это к вашему turnFlashOn код:

try {
mCamera.setPreviewTexture(new SurfaceTexture(0));
} catch (IOException e) {
e.printStackTrace();
}

Кроме того, удалите все ссылки на SurfaceView в вашем коде, так как это не применимо в виджете

Другие вопросы по тегам