我正在使用已废弃的Android摄像头对象。我在这里阅读到:
https://source.android.com/devices/camera/versioning.html
即使摄像头对象已被弃用,它仍然适用于Android 5.0+版本。我问了这个问题,因为我发布了一个使用已弃用的摄像头对象的应用程序,但是我的朋友下载了这个应用程序并发现应用程序会崩溃。他们报告了错误,并且我在跟踪堆栈中看到相机甚至无法打开。这个应用程序可以在我的手机上工作,我的手机版本为5.0+。所以可能我没有正确地打开相机?还是这些手机不能使用已弃用的类。以下是我打开相机的代码:
@Override
public void onResume() {
super.onResume();
if(!StopTouch)//ignore this condition not relevant to the problem
StartUpCam();
}
private void StartUpCam()
{
if(faceProc==null)//ignore this as well
faceProc = FacialProcessing.getInstance();
camera=Camera.open(getCid()); //crashes here!!! Calls getCid() which is defined below
camera.setPreviewCallback(this);
initPreview(width, height);
startPreview();
startTimer();
}
private int getCid()
{
if(cameraFront && findFrontFacingCamera()>0)
return findFrontFacingCamera();
return findBackFacingCamera();
}
public static int findBackFacingCamera() {
int cameraId = -1;
int numberOfCameras = Camera.getNumberOfCameras();
for (int i = 0; i < numberOfCameras; i++) {
CameraInfo info = new CameraInfo();
Camera.getCameraInfo(i, info);
if (info.facing == CameraInfo.CAMERA_FACING_BACK) {
cameraId = i;
break;
}
}
return cameraId;
}
public static int findFrontFacingCamera() {
int cameraId = -1;
int numberOfCameras = Camera.getNumberOfCameras();
for (int i = 0; i < numberOfCameras; i++) {
CameraInfo info = new CameraInfo();
Camera.getCameraInfo(i, info);
if (info.facing == CameraInfo.CAMERA_FACING_FRONT) {
cameraId = i;
break;
}
}
return cameraId;
}
有其他人在发布应用程序时使用已弃用的摄像头类遇到问题吗?这里我做错了什么?