绝代码农 发表于 2021-7-31 10:17:25

Delphi 10.3.1拍照遇到的问题


procedure TAddOrderCamera.CameraActionExecute(Sender: TObject);
var
Service: IFMXCameraService;
Params: TParamsPhotoQuery;
begin
if TPlatformServices.Current.SupportsPlatformService(IFMXCameraService, Service) then
begin
    Params.Editable := False; //拍完照是否允许编辑
    // Specifies whether to save a picture to device Photo Library
    Params.NeedSaveToAlbum := False; //是否保存到系统相册
    Params.RequiredResolution := TSize.Create(2000, 2000);//拍照大小,每张照片有固定宽高比例,系统会自动处理,给它一个想要的大约值就行。
    Params.OnDidFinishTaking :=Self.CameraActionDidFinishTaking;//拍完照后触发的事件
    Service.TakePhoto(nil, Params);//打开相机,开始拍照
end
else
    ShowMessage('设备不支持拍照.');
end;上面的代码,在10.3.1下出错。但是,同样的调用方式在另外一个app中,则没有问题。跟踪确定,问题出在Service.TakePhoto(nil,Pararms)这一句上。
两个项目使用的AndroidManifest.xml文件是一样的。
解决方法:打开Project Options窗口,如下图,Secure File Sharing打勾!

参考QC地址:https://quality.embarcadero.com/browse/RSP-22870
如果这一项不好用,则需要你重新安装10.3.1,具体原因可以参考:https://quality.embarcadero.com/browse/RSP-24067
以保证IDE生成正确的AndroidManifest.xml文件。
2019-07-11后记:
不用重装IDE,直接修改AndroidManifest.xml,增加一句:
<%provider%>
当然,前掉是Secure File Sharing打勾!



文档来源:51CTO技术博客https://blog.51cto.com/u_15317185/3224751
页: [1]
查看完整版本: Delphi 10.3.1拍照遇到的问题