我的应用程序涉及从设备的图库中选择图像,然后将该图像的较小版本保存到 SD 卡上的文件夹中。我遇到的问题是一些用户报告说图像没有保存到文件夹中。然而,大多数用户报告说该应用程序运行良好,我不知道其他少数用户发生了什么。到目前为止,被报告遇到问题的设备如下:华为 T-Mobile myTouch、三星 GT-S5830i、HTC Evo 4G 和三星 Galaxy S2。我自己有一个摩托罗拉 Atrix 2,我没有遇到过这样的问题。
我的清单中已经有标签。我的大部分代码来自其他 stackoverflow 解决方案,用于从图库中获取图像,然后将其保存到 sd 卡。
从图库中获取图像:
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK)
{
switch(requestCode)
{
case SELECT_IMAGE:
image_dir = getPath(data.getData());
Bitmap myBitmap = decodeFile(new File(image_dir));
resizedBitmap = Bitmap.createScaledBitmap(myBitmap, (int)(myBitmap.getWidth()/2), (int)(myBitmap.getHeight()/2), true);
break;
}
}
else
{
image_dir = "None";
}
}
将图像保存到 SD 卡:
OutputStream fOut = null;
File file = new File(Environment.getExternalStorageDirectory()+"/MyApp",imgname+".jpg");
fOut = new FileOutputStream(file);
resizedBitmap.compress(Bitmap.CompressFormat.JPEG, 100, fOut);
fOut.flush();
fOut.close();
对于大多数用户来说,这一切似乎都很好,但对于某些用户来说,图像并没有得到保存。这可能是权限问题还是我在代码本身中忽略的某种设置?任何帮助表示赞赏。