-3
私のアプリケーションは、多くのデバイスでフラッシュをオン/オフします。しかし、それはLG電子 - F500Sアンドロイドバージョン6.0(サムスンS7アンドロイド6.0うまく動作しません)で動作していません。誰が私に理由と解決策を見つけるのを助けますか?カメラのフラッシュが動作しない
私のアプリケーションは、多くのデバイスでフラッシュをオン/オフします。しかし、それはLG電子 - F500Sアンドロイドバージョン6.0(サムスンS7アンドロイド6.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
あなたがこれを読んで確認し、改善しようとしてください質問:http://stackoverflow.com/help/mcve –