Android Q 适配指南
安卓10.0首批支持哪些机型 安卓10.0支持机型一览
Google公布了首批Android Q升级厂商名单:Pixel、一加、TECNO、小米、华硕、华为、索尼、诺基亚、OPPO、LG、Essential、vivo、realme
首批适配机型有:诺基亚8.1、华为Mate 20 Pro、LG G8 ThinQ、一加6T、OPPO Reno、索尼XperiaXZ3、vivo X27
(偶买了这款)、小米9、小米MIX 3 5G版等共15款机型
看了参考1
的文章,Android Q适配目前来看,就如下几点需要修改
-
存储权限
当targetSDK<=P,在Q Beat1版上申请两个旧权限时会自动改成申请三个新权限,不会影响应用正常使用,但当targetSDK==Q时,申请旧权限将失败并影响应用正常使用
结论
:若targetSDK<=P的话,不影响
-
定位权限
targetSDK <= P 应用如果请求了ACCESS_FINE_LOCATION 或 ACCESS_COARSE_LOCATION权限,Q设备会自动帮你申请ACCESS_BACKGROUND_LOCATION权限
结论
:若targetSDK<=P的话,不影响
-
设备唯一标识符
设备唯一标识符需要特别注意,原来的READ_PHONE_STATE权限已经不能获得IMEI和序列号,如果想在Q设备上通过getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId();
获得设备ID,会返回空值(targetSDK<=P)或者报错(targetSDK==Q)。且官方所说的READ_PRIVILEGED_PHONE_STATE权限只提供给系统app
结论
:若targetSDK<=P的话,需要适配
PS:Google有推荐设备唯一标识符做法:唯一标识符最佳做法 -
minSDK警告
在 Android Q 中,当用户首次运行以 Android 6.0(API 级别 23)以下的版本为目标平台的任何应用时,Android平台会向用户发出警告。如果此应用要求用户授予权限,则系统会先向用户提供调整应用权限的机会,然后才会允许此应用首次运行。
谷歌要求运行在Q设备上的应用targetSDK>=23,不然会向用户发出警告
结论
:若targetSDK<=P的话,不影响
-
非SDK接口限制
非SDK接口限制就是某些SDK中的私用方法,如private方法,你通过Java反射等方法获取并调用了。那么这些调用将在target>=P或target>=Q的设备上被限制使用,当你使用了这些方法后,会报错