1
Android2MCU 2018-12-03 00:26:09 +08:00 via iPhone 2
target sdk 低于 6.0 版本,权限都是安装时授予,无需再动态申请。我自己给系统写 demo app 的时候常这么干
|
2
CEBBCAT 2018-12-03 01:12:12 +08:00 via Android
一楼结贴
|
3
merpyzf OP @Android2MCU 好的👌,谢谢你了
|
4
crayygy 2018-12-03 09:49:22 +08:00 2
1L 说的很清楚了,我再补充一点额外的好了。
所谓的 Android 6.0 加入了动态权限申请机制,需要达成两个条件。 1. 机器的 Android OS version >= 6.0 2. Application 的 targetSdk >= 23 (也就是 Android 6.0 的 SDK version) 在 Android 6.0 发布的时候,为了避免出现应用不能向上兼容的情况,所有 targetSdk < 23 的应用还可以继续下载安装,但是在 Google Play 上,下载之前会有一个 popup 告诉你,这个应用都申请了哪些权限。 你可以在系统设置里面关掉这个 App 对应的权限,但是不保证能够正常工作(因为 App 可能没有 check 没有权限的情况)。 而当应用 targetSdk >= 23 以后,在编写代码的时候必须实现动态权限申请,否则根本没办法使用权限。而很多应用为了逃开这个限制,选择了继续 targetSdk 到 22。但是编译的 SDK version 提升。比如我曾经见过的 网易云音乐,targetSdk 22,但是却使用了 Android 7.0 的新功能。 为了解决这个问题,Google 从去年开始实施一个规定(针对 Google Play ),到 2018 年 11 月以后,所有的应用要上架、更新,必须 targetSdk 到 Oreo 以上,而从 2019 年开始,上架、更新应用的 targetSdk 版本必须是一年以内发布的版本(这条规则比较绕,我们也看了好几遍)。 详细的信息可以参考这篇官方文章 https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html |
5
merpyzf OP @merpyzf 谢谢你的回答,反思下自己,很多时候对于技术就只停留在会用就行了,却没有深挖其中隐含的细节。受教了!
|
6
lisjiang 2018-12-06 12:11:01 +08:00
我也来补充一下,现在如果新应用上架 googleplay,targetSDK 必须大于等于 26,也就是说,权限适配必须做。
|