2016-10-25 9 views
0

アプリでフロントカメラを開きたいが、同じコードで2つの異なるデバイスを開くことができない。
デバイスのフロントカメラを開くにはコードをどのように作成する必要がありますか?どのようにアンドロイドデバイスのフロントカメラを開くには?

Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file)); 
    cameraIntent.putExtra("android.intent.extras.CAMERA_FACING", 1); 
    startActivityForResult(cameraIntent, REGISTRO_PONTO_IMAGE_CAM); 

これは私が使用しているコードですが、それは多くのデバイスのためのを動作しません。

+0

このデバイスでは機能しませんか? –

+0

LG G4、moto g4など、私が試している他のコードは、このコードはSamsung =/ – gFontaniva

+0

のログクラッシュでしか動作しませんか? –

答えて

0

これらのアクセス許可を追加することを忘れていけない、この機能を試してみてくださいではなく、AndroidManifest.xmlで意図

private Camera openFrontFacingCamera() { 
int cameraCount = 0; 
Camera camera = null; 
Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); 
cameraCount = Camera.getNumberOfCameras(); 
for (int camIdx = 0; camIdx < cameraCount; camIdx++) { 
    Camera.getCameraInfo(camIdx, cameraInfo); 
    if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { 
     try { 
      camera = Camera.open(camIdx); 
     } catch (RuntimeException e) { 
      Log.e(TAG, "Camera failed to open: " + e.getLocalizedMessage()); 
     } 
    } 
} 

return camera; 
} 

からフロントカメラを開く:

<uses-permission android:name="android.permission.CAMERA" /> 
<uses-feature android:name="android.hardware.camera" android:required="false" /> 
<uses-feature android:name="android.hardware.camera.front" android:required="false" /> 

コードがRunTimeExceptionをスローする場合 を接続中にエラーが発生しましたカメラ:これは、他のアプリケーションがカメラハードウェアを使用していることを意味します 参照して、それをリリースしていないアンドロイドは1つのアプリケーションだけを許可します 同時にharwareを使用するようにしてください。 カメラを使用し終わったらrelease()を呼び出そうとすると、ロックされたままになり、他の アプリケーション。 この例外を処理するには、デバイスを再起動する必要があります。

+0

これを入手してください: CameraService :: connect X(pid 17799)が拒否されました(既存のクライアント)。 カメラへの接続中にエラーが発生しました。1 getRunningAppProcesses:呼び出し側10124にREAL_GET_TASKSが格納されていません。出力を制限する – gFontaniva

+0

@ gFontanivaはあなたのデバイスを再起動し、うまくいけばエラーがなくなります –

関連する問題