0

在我的 Android 项目中,我试图将位图保存到给定位置的 SD 卡。

当我运行它时,我IOException每次都得到一个,说权限被拒绝。这是关于创建 FileOutputStream。

这使我相信我缺少权限,但我包括READ and WRITE_EXTERNAL_STORAGE. 它们在我的uses-sdk块之前声明并且在应用程序块之外。我还在read/write我的应用程序的其他地方发短信到一个文件,这工作得很好。我当前的代码已修改以匹配我在网上找到的几个解决方案,但我无法成功保存bitmap文件。

如果有人能指出我的错误,我将非常感激。

    ImageView imageView = (ImageView) findViewById(R.id.new_pnm_pic);
    Bitmap bm = (Bitmap)data.getExtras().get("data");
    imageView.setImageBitmap(bm);
    String outPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Recruits";

    try {
          File d = new File(outPath);
          if (!d.exists())
          d.mkdirs();

          SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd-kk-mm-ss");
          String currentTime = sd.format(new Date());

          File file = new File(outPath+'/'+currentTime+".jpg");             
          FileOutputStream fOut = new FileOutputStream(file.getPath());

          bm.compress(Bitmap.CompressFormat.JPEG, 50, fOut);

          fOut.flush();
          fOut.close();

       }
   catch(IOException ioe){
     Toast.makeText(this, "Nice try but didn't work", Toast.LENGTH_SHORT).show();
        }
4

1 回答 1

2

改变这个

File file = new File(outPath+'/'+currentTime+".jpg");



File file = new File(d+'/'+currentTime+".jpg");

并向清单文件添加权限:-

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

编辑
在我们开始将图像保存到 sd 卡之前,我们需要检查sd 卡是否已安装

于 2013-06-01T07:12:20.610 回答