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打勾!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM