AndroID读写权限
在配置 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 权限时,发现申请权限时,这二项权限已经无反应了;
查看网上资料后,发现实际情况如下:
1. 在 Android 13 (API Level 33) 之前,是需要申请上述2个权限,用于读写外部存储数据;
2. 从 Android 13 开始,安卓将 READ_EXTERNAL_STORAGE 权限,作了细分
> READ_MEDIA_IMAGES 、 READ_MEDIA_VIDEO、READ_MEDIA_AUDIO
> 从Android 13 开始,权限申请时,要使用上述3项(按需申请)
3. 为兼容高低不同版本的AndroID设备,需要对权限申请做识别处理 ( System.Permissions, Androidapi.Helpers, Androidapi.Jni.Os )
> 识别依据( Delphi ): TJBuild_VERSION.JavaClass.SDK_INT; (取的是设备的 API Level)
1 var 2 tmpPermissions: TArray<String>; 3 tmpSDKVersion: Integer; 4 begin 5 tmpSDKVersion := TJBuild_VERSION.JavaClass.SDK_INT; 6 7 if tmpSDKVersion >= 33 then // Android 13及之后 8 begin 9 tmpPermissions := [JStringToString(TJManifest_permission.JavaClass.CAMERA), //相机权限 10 JStringToString(TJManifest_permission.JavaClass.READ_MEDIA_IMAGES), //图片 11 JStringToString(TJManifest_permission.JavaClass.READ_MEDIA_VIDEO)]; //视频 12 end 13 else // AndroID 13之前 14 begin 15 tmpPermissions := [JStringToString(TJManifest_permission.JavaClass.CAMERA), //相机 16 JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE), //读 17 JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE)]; //写 18 end; 19 20 // 申请权限 21 Permissionsservice.RequestPermissions(tmpPermissions, 22 RequestPermissionsResult, DisplayRationale); 23 end;
4. 关于 WRITE_EXTERNAL_STORAGE 权限,按网上资料所查,此权限是会被弃用的;
而且此权限在大多数情况下,基本不会再用到了;
分类:
Delphi-App
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
2022-12-07 TS.002.编译首个TS文件,并编译生成JS文件,再Node运行
2022-12-07 TS.001. 安装 编译TS 的工具包