2014-01-22 9 views
4

app-widget을 통해 플래시를 켜려고 할 때 플래시가 응용 프로그램에서 잘 켜져 있습니다 (layout에 surface_view 추가). 나는 Camera하고 여기에 SurfaceView 내가 사용하고있는 코드 사용flash 토치 기능이 nexus 5의 app-widget을 통해 작동하지 않습니다.

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(); 

추가 권한 및 매니페스트의 특징은 : 카메라가
손전등을 열기 위해에 집착하는면이 필요

<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" /> 

답변

8

.. 그러나 SurfaceView는 위젯에 적용될 수 없습니다. 그래서 이것은 당신이 .....

turnFlashOn 코드에이를 추가해야 할 것입니다 : 그것은 위젯에 적용 할 수없는 한, 또한

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

코드에 서피스 뷰 SurfaceView에 대한 모든 참조를 제거

+0

btw의 mCamera.setPreviewTexture() – urSus

+0

@Vlasto Benny Lava가 오류를 지적 해 주셔서 감사합니다 – SuperStallion

+0

@SuperStallion에 감사드립니다 !! 나는 해결책을 찾고 있었다. setPreviewDisplay와 coudlnt를 사용하여 손전등을 작동시킵니다. – amirye