闪光灯火炬功能无法通过nexus 5中的app-widget工作

Sru*_*ala 4 flash android android-camera google-nexus

Flash正在从应用程序开始正常运行(将surface_view添加到布局),当我尝试通过app-widget打开闪存时,它无法正常工作.我用过CameraSurfaceView这是我正在使用的代码

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();
Run Code Online (Sandbox Code Playgroud)

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" />
Run Code Online (Sandbox Code Playgroud)

Sup*_*ion 8

相机需要一个表面才能打开
手电筒.然而,SurfaceView无法应用于小部件.所以这就是你需要的......

将其添加到您的turnFlashOn代码中:

try {
mCamera.setPreviewTexture(new SurfaceTexture(0));
} catch (IOException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

此外,删除代码中对surfaceview的所有引用,因为它不适用于窗口小部件