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适配目前来看,就如下几点需要修改
  1. 存储权限 当targetSDK<=P,在Q Beat1版上申请两个旧权限时会自动改成申请三个新权限,不会影响应用正常使用,但当targetSDK==Q时,申请旧权限将失败并影响应用正常使用
    结论:若targetSDK<=P的话,不影响
  2. 定位权限 targetSDK <= P 应用如果请求了ACCESS_FINE_LOCATION 或 ACCESS_COARSE_LOCATION权限,Q设备会自动帮你申请ACCESS_BACKGROUND_LOCATION权限
    结论:若targetSDK<=P的话,不影响
  3. 设备唯一标识符 设备唯一标识符需要特别注意,原来的READ_PHONE_STATE权限已经不能获得IMEI和序列号,如果想在Q设备上通过
getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId();

获得设备ID,会返回空值(targetSDK<=P)或者报错(targetSDK==Q)。且官方所说的READ_PRIVILEGED_PHONE_STATE权限只提供给系统app
结论:若targetSDK<=P的话,需要适配 PS:Google有推荐设备唯一标识符做法:唯一标识符最佳做法

  1. minSDK警告 在 Android Q 中,当用户首次运行以 Android 6.0(API 级别 23)以下的版本为目标平台的任何应用时,Android平台会向用户发出警告。如果此应用要求用户授予权限,则系统会先向用户提供调整应用权限的机会,然后才会允许此应用首次运行。
    谷歌要求运行在Q设备上的应用targetSDK>=23,不然会向用户发出警告
    结论:若targetSDK<=P的话,不影响
  2. 非SDK接口限制 非SDK接口限制就是某些SDK中的私用方法,如private方法,你通过Java反射等方法获取并调用了。那么这些调用将在target>=P或target>=Q的设备上被限制使用,当你使用了这些方法后,会报错
参考
  1. Android Q 适配指南 让你少走一堆弯路
  2. Android Q 功能和 API
  3. 唯一标识符最佳做法
  4. 将应用迁移到 Android Q
  5. Android Q 要来了,给你一份很"全面"的适配指南!
  6. Android Q 兼容那些事
  7. 关于Android 10.0适配,看这篇就够了
  8. Android 10正式版发布,看看都有哪些新特性