Androidシステムでシステムのフロントカメラを呼び出す方法


方式はMediaStoreを採用し、システムのオリジナルカメラを呼び出す.
1
2
3
4
5
6
7
8 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);           intent.putExtra( "camerasensortype" , 2 ); // intent.putExtra( "autofocus" , true ); // intent.putExtra( "fullScreen" , false ); // intent.putExtra( "showActionIcons" , false );
  startActivityForResult(intent, PICK_FROM_CAMERA);
もう一つの方法はCameraフレームワークを採用しており、以前のバージョンのSDKではCameraのみだった.Open()メソッドは、バックグラウンドカメラを呼び出すために使用されます.これで、このメソッドは、フロントカメラかバックグラウンドカメラかを決定するパラメータを受け入れます.また、新しいCamerainfoクラスとgetCameraInfoメソッドに基づいてAndroidデバイス上の詳細なカメラ情報を取得し、getNumberOfCameras()によってカメラの数を取得します.典型的な呼び出し方法は次のとおりです.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16      int cameraCount = 0 ;      Camera cam = null ;           Camera.CameraInfo cameraInfo = new Camera.CameraInfo();      cameraCount = Camera.getNumberOfCameras(); // get cameras number                    for ( int camIdx = 0 ; camIdx < cameraCount;camIdx++ ) {          Camera.getCameraInfo( camIdx, cameraInfo ); // get camerainfo          if ( cameraInfo.facing ==Camera.CameraInfo.CAMERA_FACING_FRONT ) { // , // CAMERA_FACING_FRONT CAMERA_FACING_BACK              try {                              cam = Camera.open( camIdx );              } catch (RuntimeExceptione) {                  e.printStackTrace();          }      }
Cameraフレームワークを採用する利点は、setDisplayOrientation、Cameraなどの大量のAPIを提供することにある.Parametersは強力な機能を実現し、urfaceHolderを結合する.Callback、ShutterCallback、PictureCallbackなどのインタフェースの後にインタフェースと機能のカスタマイズを行うことができ、必要なインタフェースレイアウトと画像処理効果を自由に実現することができます.たとえば、次のようなインタフェースがあります.