Android Studio-如何将图像保存到SECONDARY_STORAGE

时间:2018-12-15 08:14:59

标签: android android-studio android-storage

我想将图像保存到SECONDARY_STORAGE(不是保存到手机内存中,Android认为是SdCard),这是代码:

manifests文件中:

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

Java代码:

public void Clickdownload(View v) {

    Bitmap myImage = GetImageBitmapFromUrl();
    String path = System.getenv("SECONDARY_STORAGE") + "/";
    OutputStream out = null;
    try {
        File file = new File(path, "nameImage.jpg");
        out = new FileOutputStream(file);
        myImage.compress(Bitmap.CompressFormat.JPEG, 85, out);
        out.flush();
        out.close();
    } catch (Exception e) {

    }

}

在运行Debug时出现此错误

  

错误:
    myImage.compress(Bitmap.CompressFormat.JPEG,85,out);

它没有保存。

这是从SD卡读取图像的代码:

String path =System.getenv("SECONDARY_STORAGE")+"/myImage/";

File imgFile = new File(path);
if(imgFile.exists())
{
    Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
    ImageView imageView=(ImageView)findViewById(R.id.imageView);
    imageView.setImageBitmap(myBitmap);
}

当我使用时:

String path = Environment.getExternalStorageDirectory().toString();

我可以将图像保存到手机内存中。

我可以保存相机中的图像,也可以从计算机上的SdCard复制图像,因此我认为这不是Read only SdCard。我尝试了多种类型的SdCard,但它不起作用。 我正在使用android 5.1.1。

0 个答案:

没有答案