android - 使用 firemonkey 将照片添加到图库

标签 android delphi

我正在尝试将图片保存在设备的外部存储中,然后将图像添加到图库中。 我尝试了以下代码,但它不起作用! 没有发生错误,但看不到图库中保存的图片。

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);
    showmessage(JStringToString(ImageFile.getAbsolutePath));
    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;

最佳答案

使用IFMXPhotoLibrary平台服务。该接口(interface)有一个AddImageToSavedPhotosAlbum您可以使用 TBitmap 调用方法要添加到设备库的对象

检查此 fragment :

uses
  FMX.Platform,
  FMX.MediaLibrary;

procedure TForm2.Button1Click(Sender: TObject);
var
  Gallery: IFMXPhotoLibrary;
begin
  if not TPlatformServices.Current.SupportsPlatformService(IFMXPhotoLibrary, Gallery) then
    Exit;

  Gallery.AddImageToSavedPhotosAlbum(YoutBitmapObjectHere);
end;

关于android - 使用 firemonkey 将照片添加到图库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42867411/

相关文章:

使用 "android.test.PerformanceTestCase"接口(interface)进行Android性能测试

java - 将 mp3 解码为 pcm,并在 Google Android 中播放音轨

java - 尝试从图片中读取元数据时获取 FileNotFoundException(权限被拒绝)

从父级调用应用程序创建的 Delphi DLL

delphi - 如何引起服务属性的标准对话?

delphi - Delphi中向量类的实现?

java - 使用 firebase-mlkit 访问云视觉 api 时套接字关闭

javascript - 警告 : Memory Router ignores the history props

delphi - 使用 3G 调制解调器调用语音电话

XMLTimeToDateTime 忽略毫秒