您好,我在直接从相机上传图片时遇到问题。错误是:
/mnt/sdcard/Phoenix/default: open failed: ENOENT (No such file or directory)
我尝试了许多其他方法,但我面临着没有此类文件或目录的相同问题。 我的代码如下:
if (options[item].equals("Take Photo")) {
dialog.dismiss();
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File f = new File(android.os.Environment.getExternalStorageDirectory(), "temp.jpg");
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
startActivityForResult(intent, PICK_IMAGE_CAMERA);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
inputStreamImg = null;
if (requestCode == PICK_IMAGE_CAMERA) {
try {
File f = new File(Environment.getExternalStorageDirectory().toString());
for (File temp : f.listFiles()) {
if (temp.getName().equals("temp.jpg")) {
f = temp;
break;
}
}
try {
BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
bitmapPrescribedMed = BitmapFactory.decodeFile(f.getAbsolutePath(), bitmapOptions);
imgPrescribedMedicinePath = android.os.Environment
.getExternalStorageDirectory()
+ File.separator
+ "Phoenix" + File.separator + "default";
f.delete();
OutputStream outFile = null;
File file = new File(imgPrescribedMedicinePath, String.valueOf(System.currentTimeMillis()) + ".jpg");
try {
outFile = new FileOutputStream(file);
bitmapPrescribedMed.compress(Bitmap.CompressFormat.JPEG, 85, outFile);
outFile.flush();
outFile.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
有人可以帮我吗?
答案 0 :(得分:0)
我们实际上将文件写入外部存储中。尝试在您的AndroidManifest中添加以下内容。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
如果该方法不起作用,请尝试多次复制,如果该方法一次,然后每次都可以工作,则可能表示该模块需要在自定义本地目录中创建映像。