最終更新:
moonlight_aska 2015年05月30日(土) 21:21:01履歴
- Camera2Info.java
- Activity#getSystemServiceメソッドで, Context.CAMERA_SERVICEを指定してCameraManagerのインスタンスを取得する.
- CameraManager#getCameraIdListメソッドで, 順にカメラIDを取得する.
- CameraManager#getCameraCharacteristicsメソッドで, 指定したカメラIDのカメラ特長を取得する.
- CameraCharacteristics#getメソッドで, 指定したKEYの情報を取得する.
package com.moonlight_aska.android.camera2info;
import android.app.Activity;
import android.content.Context;
import android.hardware.camera2.CameraAccessException;
import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.CameraManager;
import android.os.Bundle;
import android.util.Log;
public class Camera2Info extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// カメラマネージャのインスタンスを取得
CameraManager manager = (CameraManager)getSystemService(Context.CAMERA_SERVICE);
try {
for (String cameraId : manager.getCameraIdList()} {
// 指定したカメラの情報を取得
CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraId);
if (characteristics.get(CameraCharacteristics.LENS_FACING)
== CameraCharacteristics.LENS_FACING_BACK) {
Log.v("Camera2", "Facing : BACK");
}
else if (characteristics.get(CameraCharacteristics.LENS_FACING)
== CameraCharacteristics.LENS_FACING_FRONT) {
Log.v("Camera2", "Facing : FRONT");
}
}
} catch (CameraAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
- CameraInfo.java
- Camera#getNumberOfCamerasメソッドで, 端末で利用可能なカメラの個数を取得する.
- CameraInfoのインスタンスを生成する.
- Camera#.getCameraInfoメソッドで, 指定したカメラの情報を取得する.
- CameraInfo.facingはカメラ位置を, CameraInfo.orientationはカメラの縦/横向きを示す.
package com.moonlight_aska.android.camerainfo;
import android.hardware.Camera;
import android.hardware.Camera.CameraInfo;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
public class CameraInfo extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 利用可能なカメラの個数を取得
int numberOfCameras = Camera.getNumberOfCameras();
CameraInfo cameraInfo = new CameraInfo();
for (int i = 0; i < numberOfCameras; i++) {
// 指定したカメラの情報を取得
Camera.getCameraInfo(i, cameraInfo);
if (cameraInfo.facing == CameraInfo.CAMERA_FACING_BACK) {
Log.v("Camera", "Facing : BACK");
}
else if (cameraInfo.facing == CameraInfo.CAMERA_FACING_FRONT) {
Log.v("Camera", "Facing : FRONT");
}
Log.v("Camera", "Orientation : " + cameraInfo.orientation);
}
}
}
- 動作例
![](https://image01.seesaawiki.jp/m/a/moonlight_aska/43e6ac85139468ef.png)
コメントをかく