私のアプリでは、デバイスのギャラリーから画像を選択し、その画像の小さいバージョンを SD カードのフォルダーに保存します。私が直面している問題は、一部のユーザーが、画像がフォルダーに保存されていないと報告していることです。ただし、ほとんどのユーザーはアプリが正常に動作していると報告しており、他の少数のユーザーに何が起こっているのかわかりません. これまでのところ、この問題が発生していると報告されているデバイスは、Huawei T-Mobile myTouch、Samsung GT-S5830i、HTC Evo 4G、および Samsung Galaxy S2 です。私自身 Motorola Atrix 2 を持っていますが、そのような問題はありませんでした。
私のマニフェストには既にタグが含まれています。私のコードのほとんどは、他のスタック オーバーフロー ソリューションから来て、ギャラリーから画像を取得し、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();
ほとんどのユーザーにとってはこれで問題ないように見えますが、一部のユーザーにとっては画像が保存されません。これはパーミッションの問題でしょうか、それともコード自体で見落としていた何らかの設定でしょうか? どんな助けでも大歓迎です。