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

时间:2014-01-22 13:38:07

标签: android flash 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();

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 个答案:

答案 0 :(得分:8)

相机需要一个表面才能打开以便打开 手电筒......无论SurfaceView都无法应用于窗口小部件。所以这就是你需要的......

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

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

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