san*_*ana 0 flash android android-package-managers android-camera front-camera
嗨,我正在开发自定义视频应用程序.我能够获得currentCameraId 通过
currentCameraId = Camera.CameraInfo.CAMERA_FACING_BACK;
Run Code Online (Sandbox Code Playgroud)
我有两个问题要问:
1)如何只用前置摄像头检测Android设备.
因为在Micromax标签中只有前置摄像头的平板电脑上,currentCameraId为0.
2)如何检查相机闪光灯的可用性,因为下面的代码在某些手机上不起作用
flash = this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
Run Code Online (Sandbox Code Playgroud)
请帮忙.
谢谢!
检查闪光灯是否可用
boolean hasFlash = getApplicationContext().getPackageManager()
.hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
Run Code Online (Sandbox Code Playgroud)
检查相机是否可用
PackageManager pm = context.getPackageManager();
if (pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
}
Run Code Online (Sandbox Code Playgroud)
如果您使用的是API级别9(Android 2.3)或更高版本,则可以执行以下操作来计算(第一个)前置摄像头的索引:
int getFrontCameraId() {
CameraInfo ci = new CameraInfo();
for (int i = 0 ; i < Camera.getNumberOfCameras(); i++) {
Camera.getCameraInfo(i, ci);
if (ci.facing == CameraInfo.CAMERA_FACING_FRONT) return i;
}
return -1; // No front-facing camera found
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用Camera.open的索引
例如
int index = getFrontCameraId();
if (index == -1) error();
Camera c = Camera.open(index);
Run Code Online (Sandbox Code Playgroud)