サーバーから画像をダウンロードしてアプリケーションフォルダに配置するギャラリーアプリを作っています。しかし、私はこのアプリ(https://play.google.com/store/apps/details?id=com.sonyericsson.album)を開くと、私は私のダウンロードイメージを見ることができません。これは私のコード ダウンロードの画像です:通知するEnvironment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
画像をダウンロードして保存しますが、画像ギャラリーは画像を見ることができません
ステップ2. 使用MediaScannerにファイルを保存
private void saveToDirectory(Bitmap bitmap, String path) {
File pictureFile = getOutputMediaFile(path);
if (pictureFile == null) {
Toast.makeText(getActivity(), "Došlo je do greške!", Toast.LENGTH_LONG).show();
Log.d(TAG,
"Error creating media file, check storage permissions: ");// e.getMessage());
return;
}
try {
FileOutputStream fos = new FileOutputStream(pictureFile);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
fos.close();
Toast.makeText(getActivity(), "Slika je sačuvana!", Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
Toast.makeText(getActivity(), "Došlo je do greške!", Toast.LENGTH_LONG).show();
Log.d(TAG, "File not found: " + e.getMessage());
} catch (IOException e) {
Toast.makeText(getActivity(), "Došlo je do greške!", Toast.LENGTH_LONG).show();
Log.d(TAG, "Error accessing file: " + e.getMessage());
}
}
@Nullable
private File getOutputMediaFile(String path) {
File mediaStorageDir = new File(Environment.getExternalStorageDirectory(), getActivity().getString(R.string.app_name));
Log.d(TAG, mediaStorageDir.getAbsolutePath());
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
return null;
}
}
String name = "";
for(int i = path.length() - 1; i >= 0; i--) {
if (path.charAt(i) == '/') {
break;
}
name = path.charAt(i) + name;
}
File mediaFile;
String mImageName = getActivity().getString(R.string.app_name) +"_"+ name;
//String mImageName = "IMG" +"-"+ name;
mediaFile = new File(mediaStorageDir.getPath() + File.separator + mImageName);
return mediaFile;
}