2016-04-28 13 views
-3

Meine Anwendung ein-/ausschalten Blitz auf vielen Geräten. Aber es funktioniert nicht auf LG-F500S Android verion 6.0 (Samsung S7 Android 6.0 funktioniert gut). Wer hilft mir bitte, Grund und Lösung zu finden?Kamera Blitz funktioniert nicht

+1

Bitte stellen Sie sicher, dass Sie diese und versuchen, lesen Sie Ihre verbessern Frage: http://stackoverflow.com/help/mcve –

Antwort

0

Ich muss Grund finden.
+ targetSdkVersion + Oberflächenhalter:

public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback { 

    private SurfaceHolder mHolder; 
    private Camera mCamera; 
    public CameraPreview(Context context, Camera camera) { 
     super(context); 
     mCamera = camera; 

     // Install a SurfaceHolder.Callback so we get notified when the 
     // underlying surface is created and destroyed. 
     mHolder = getHolder(); 
     mHolder.addCallback(this); 
     // deprecated setting, but required on Android versions prior to 3.0 
     mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 
    } 


    @Override 
    public void surfaceCreated(SurfaceHolder surfaceHolder) { 
     try { 
      mCamera.setPreviewDisplay(surfaceHolder); 
      mCamera.startPreview(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    @Override 
    public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) { 
     if (mHolder.getSurface() == null){ 
      // preview surface does not exist 
      return; 
     } 
     try { 
      mCamera.stopPreview(); 
     } catch (Exception e){ 
      e.printStackTrace(); 
     } 
     try { 
      mCamera.setPreviewDisplay(mHolder); 
      mCamera.startPreview(); 

     } catch (Exception e){ 
      e.printStackTrace(); 
     } 
    } 

    @Override 
    public void surfaceDestroyed(SurfaceHolder surfaceHolder) { 

    } 
} 

+ MainActivity:

public Camera getCameraInstance(){ 
     Camera c = null; 
     try { 
      c = Camera.open(); // attempt to get a Camera instance 
     } 
     catch (Exception e){ 
      // Camera is not available (in use or does not exist) 
     } 
     return c; // returns null if camera is unavailable 
    } 
@Override 
    protected void onResume() { 
     super.onResume(); 
     cam = getCameraInstance(); 
     mPreview = new CameraPreview(this, cam); 
     FrameLayout preview = (FrameLayout) findViewById(R.id.surfaceContain); 
     preview.addView(mPreview); 


    } 
public void toggleLight(View v){ 
     if (isFlash){ 
      isFlash = false; 
      params = cam.getParameters(); 
      params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF); 
      cam.setParameters(params); 
      cam.startPreview(); 
     }else{ 
      isFlash = true; 
      params = cam.getParameters(); 
      params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); 
      cam.setParameters(params); 
      cam.startPreview(); 
     } 
    } 

Details sehen hier:
https://developer.android.com/guide/topics/media/camera.html