2016-04-28 10 views
-3

私のアプリケーションは、多くのデバイスでフラッシュをオン/オフします。しかし、それはLG電子 - F500Sアンドロイドバージョン6.0(サムスンS7アンドロイド6.0うまく動作しません)で動作していません。誰が私に理由と解決策を見つけるのを助けますか?カメラのフラッシュが動作しない

+1

あなたがこれを読んで確認し、改善しようとしてください質問:http://stackoverflow.com/help/mcve –

答えて

0

私は理由を見つけなければなりません。
+ targetSdkVersion +表面ホルダー:

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

詳細を表示:
https://developer.android.com/guide/topics/media/camera.html

関連する問題