Решение проблемы: нужно явно уведомить об этом операционную систему, а точнее media scanner сервис. Служба будет считывать мета-данные из файла и добавлять файл к поставщику контента (пакет android.provider).
Документация:
https://eveloper.android.com/reference/android/med...
Пример кода:
private void saveImageToGallery(Bitmap image, View view) {
final File externalStoragePublicDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
try {
if (externalStoragePublicDirectory.exists()) {
File image = new File(externalStoragePublicDirectory, name + ".png");
OutputStream os = new FileOutputStream(image);
image.compress(Bitmap.CompressFormat.PNG, 100, os);
os.close();
MediaScannerConnection.scanFile(context, paths, null, new MediaScannerConnection.OnScanCompletedListener() {
@Override
public void onScanCompleted(String path, Uri uri) {
Log.i("ExternalStorage", "Scanned " + path + ":");
Log.i("ExternalStorage", "-> uri=" + uri);
}
});
}
} catch (IOException ex) {
Log.w(TAG, "Error, image wasn't saved to gallery", ex);
}
}