FileNotFoundException,我无法将我的位图保存到存储中
FileNotFound Exception, i cant save my my bitmap into the storage
我想发送一封附有二维码的电子邮件。我尝试将Bitmap中的二维码保存到存储中,但总是出现NullPointerException,找不到这样的文件或目录。谁能帮忙?非常感谢。
下面是我的错误信息和我的代码
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
try{
BitMatrix bitMatrix = multiFormatWriter.encode(key, BarcodeFormat.QR_CODE,200,200);
BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);
//File file = BitmapSaver.saveImageToExternalStorage(AddReservationDetailActivity.this,bitmap);
File myDir = new File(Environment.getExternalStorageDirectory()+"/req_images");
myDir.mkdirs();
DateFormat format = new SimpleDateFormat("yyyy_MM_dd_H_mm_ss", Locale.getDefault());
Date curDate = new Date();
String displayDate = format.format(curDate);
String fname = displayDate+ "_Image-Report.jpg";
File file = new File(myDir,fname);
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.putExtra(Intent.EXTRA_EMAIL,new String[]{email});
emailIntent.putExtra(Intent.EXTRA_SUBJECT,"This QR code is for your check In purpose");
emailIntent.putExtra(Intent.EXTRA_TEXT," ");
emailIntent.setType("image/*");
try{
FileOutputStream outputStream = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG,100,outputStream);
outputStream.close();
}catch(Exception ex){
ex.printStackTrace();
}
emailIntent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(file));
startActivity(Intent.createChooser(emailIntent,"Send the email in: "));
}catch (WriterException e){
e.printStackTrace();
}
好像存储权限有问题,我最近遇到了同样的问题。你可以从你的 makeDirs() ;
boolean bol = myDir.mkdirs();
如果为假,则为权限问题,该问题有很多主题,例如
我想发送一封附有二维码的电子邮件。我尝试将Bitmap中的二维码保存到存储中,但总是出现NullPointerException,找不到这样的文件或目录。谁能帮忙?非常感谢。
下面是我的错误信息和我的代码
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
try{
BitMatrix bitMatrix = multiFormatWriter.encode(key, BarcodeFormat.QR_CODE,200,200);
BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);
//File file = BitmapSaver.saveImageToExternalStorage(AddReservationDetailActivity.this,bitmap);
File myDir = new File(Environment.getExternalStorageDirectory()+"/req_images");
myDir.mkdirs();
DateFormat format = new SimpleDateFormat("yyyy_MM_dd_H_mm_ss", Locale.getDefault());
Date curDate = new Date();
String displayDate = format.format(curDate);
String fname = displayDate+ "_Image-Report.jpg";
File file = new File(myDir,fname);
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.putExtra(Intent.EXTRA_EMAIL,new String[]{email});
emailIntent.putExtra(Intent.EXTRA_SUBJECT,"This QR code is for your check In purpose");
emailIntent.putExtra(Intent.EXTRA_TEXT," ");
emailIntent.setType("image/*");
try{
FileOutputStream outputStream = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG,100,outputStream);
outputStream.close();
}catch(Exception ex){
ex.printStackTrace();
}
emailIntent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(file));
startActivity(Intent.createChooser(emailIntent,"Send the email in: "));
}catch (WriterException e){
e.printStackTrace();
}
好像存储权限有问题,我最近遇到了同样的问题。你可以从你的 makeDirs() ;
boolean bol = myDir.mkdirs();
如果为假,则为权限问题,该问题有很多主题,例如