--关于Android动态权限和targetSdkVersion
Android系统自6.0开始,提供动态权限机制,对于敏感权限(存储,定位,录音,拍照,录像等),需要在APP运行过程中动态向用户申请,这点和IOS系统使用体验一致。在Android上使用动态权限,要求APP编译的目标sdk(即targetSdkVersion)为23及以上,22及以下系统会执行缺省处理(手机厂商也可能定制处理),APICloud为简便开发,默认配置targetSdkVersion为20,即走系统缺省处理,不允许更改。复制代码
--有许多原生APP转到APICloud开发后,因targetSdkVersion降级而导致无法覆盖安装;另外自2018年11月开始,GooglePlay将要求APP编译目标sdk必须为26及以上,否则不予提交审核。
--现介绍如何自定义编译targetSdkVersion值:
1、下载附件中的manifest.xml,将其中的targetSdkVersion更新为目标值,例如26; 2、将manifest.xml置于你的/项目代码/res/目录下(widget/res/manifest.xml),提交代码; 3、云编译界面勾选APP所需的权限;
4、使用升级环境编译 即可。
--注意:当你设置的targetSdkVersion大于等于23时,即开启了动态权限,如果你的APP带有定位,录音,拍照,录像等敏感功能时(所有权限见文档),必须使用动态权限机制,先判断是否具有该功能操作权限,再进行操作,如果不具备相应的权限,对应的功能是失效的(也可能导致崩溃)。涉及的两个API:hasPermission | requestPermission
补充:当你设置的targetSdkVersion大于等于23时,如果是编译自定义loader,安装到手机后,需要先在设置中给应用打开存储空间权限。否则,WiFi同步后,loader无法正常加载代码。
为保证动态权限尽可能适配更多厂商的手机以及顺利上线Google Play,targetSdkVersion目前推荐设置为26.