Чтобы добавить любое изображение в системную галерею изображений Андроида нужно:
Получить универсальный URI к вашей картинке GetImageUri. Для этого сохраняем изображение (если изображение находится в памяти устройства, а не в файловой системе) в кэш приложения.
Формируем намерение JIntent, что хотим добавить изображение. Задаем URI к картинке и делаем широковещательный запрос на все приложения, которые могут обработать наш запрос.
// Сохранение изображения в кэш приложения и извлечение Url к этому файлу
function GetImageUri(ABitmap: TBitmap): Jnet_Uri;
var
ImageFile: JFile;
ImageUri: Jnet_Uri;
FileNameTemp: JString;
FileNameExt: JString;
begin
FileNameTemp := StringToJString('temp');
FileNameExt := StringToJString('.jpg');
try
ImageFile := TJFile.JavaClass.createTempFile(FileNameTemp, FileNameExt);
ImageUri := TJnet_Uri.JavaClass.fromFile(ImageFile);
ABitmap.SaveToFile(JStringToString(ImageFile.getAbsolutePath));
finally
Result := ImageUri;
end;
end;
procedure AddPhotoToGallery(const APhoto: TBitmap);
var
Intent: JIntent;
begin
Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_MEDIA_SCANNER_SCAN_FILE);
Intent.setData(GetImageUri(APhoto));
SharedActivity.sendBroadcast(Intent);
end;