针对此问题,可以采取以下步骤。
检查AndroidManifest.xml文件中的权限是否正确设置。确保已经启用摄像头权限(android.permission.CAMERA)和存储权限(android.permission.WRITE_EXTERNAL_STORAGE)。
在运行时检查权限,通过以下代码片段来申请摄像头和写入存储的权限:
if (ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.CAMERA},
MY_PERMISSIONS_REQUEST_CAMERA);
}
if (ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
MY_PERMISSIONS_REQUEST_WRITE_STORAGE);
}
private void switchCamera() {
mCamera.stopPreview();
mCamera.release();
if (mCurrentCameraId == Camera.CameraInfo.CAMERA_FACING_BACK) {
mCurrentCameraId = Camera.CameraInfo.CAMERA_FACING_FRONT;
} else {
mCurrentCameraId = Camera.CameraInfo.CAMERA_FACING_BACK;
}
mCamera = getCameraInstance(mCurrentCameraId);
setCameraDisplayOrientation();
try {
mCamera.setPreviewDisplay(mPreview.getHolder());
} catch (IOException e) {
e.printStackTrace();
}
mCamera.startPreview();
}
private void uploadImage() {
String filePath = "/sdcard/test.jpg";
File file = new File(filePath);
if (file.exists()) {
// Do upload image task here
} else {
Toast.makeText(this, "File not found!", Toast.LENGTH_SHORT).show();
}
}
通过执行以上步骤,我们可以成功地解决'Android Camera Capture - switch Font/Rear Camera Image Doesn't Upload”问题。