为了解决问题,我正在尝试执行以下操作:
-
我将使代码通用,我得到的解决方案,对于许多其他文件格式,而不是PDF:
private String saveFileFromUri(Uri pdfUri){
try{
InputStream is=
baseActivity.getContentResolver().openInputStream(pdfUri);
byte[]bytesArray=new byte[is.available()];
int read=is.read(bytesArray);
//write to sdcard
File dir=new File(Environment.getExternalStorageDirectory(),"/PRJ");
boolean mkdirs=dir.mkdirs();
File myPdf=new
File(Environment.getExternalStorageDirectory(),"/PRJ/myPdf.pdf");
if(read==-1&&mkdirs){
}
FileOutputStream fos=new FileOutputStream(myPdf.getPath());
fos.write(bytesArray);
fos.close();
// System.out.println(fileString);
return myPdf.getPath();
}catch(FileNotFoundException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
return null;}
-
为了能够释放相机资源,我将使用基于表面视图的相机活动,允许这样做。下面是代码的一部分:
释放相机资源:
@Override
public void onPause()
{
super.onPause();
if (mCamera != null){
// mCamera.setPreviewCallback(null);
mPreview.getHolder().removeCallback(mPreview);
releaseMediaRecorder();
mCamera.release(); // release the camera for other applications
mCamera = null;
}
}
@Override
public void onResume() {
super.onResume();
if (mCamera == null) {
mCamera=getCameraInstance();
mPreview = new CameraPreview(this.getActivity(), mCamera);
preview.addView(mPreview);
}
}