delphi android app无法拍照  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi android app无法拍照



现象,app能打开像机,拍照,确认后,没有执行回调,直接返回了主窗口。


原因:进入手机设置->应用权限:获取手机信息,将这个打开,正常了!


手机:小米note 3 android 9


解决办法:用代码动态申请READ_PHONE_STATE权限:


uses System.Permissions;



procedure TMainForm.RequestPermission;

begin

{$IF  DEFINED(ANDROID)}

  PermissionsService.RequestPermissions([JStringToString(TJManifest_permission.JavaClass.CAMERA),

                                         JStringToString(TJManifest_permission.JavaClass.ACCESS_COARSE_LOCATION),

                                         JStringToString(TJManifest_permission.JavaClass.ACCESS_FINE_LOCATION),

                                         JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE),

                                         JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE),

                                         JStringToString(TJManifest_permission.JavaClass.BLUETOOTH),

                                         JStringToString(TJManifest_permission.JavaClass.BLUETOOTH_ADMIN),

                                         JStringToString(TJManifest_permission.JavaClass.READ_PHONE_STATE)  //这个权限影响拍照功能

                                         ],

                                        procedure(const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>)

                                        begin

                                          if (Length(AGrantResults) = 0) then

                                          begin


                                          end;

                                        end);

{$ENDIF}

end;


为什么这个权限影响了拍照功能呢?想不明白。


与同事们讨论这个问题,得出一个结论:小米手机在拍照时,在照片上写水印,而读取这个水印信息,需要READ_PHONE_STATE权限。

-----------------------------------


https://blog.51cto.com/kinglandsoft/3224653



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.082418918609619 seconds