Android 9.0 行为变更(一)针对所有 API 级别的应用

Android 9.0 强化了电源管理和隐私权控制,包括限制后台应用访问传感器、电话记录和Wi-Fi信息。此外,不再支持Android安全加密文件,对使用非SDK接口的限制增加,以及对Apache HTTP客户端的弃用。系统还加强了TLS实现和加密变更,例如Conscrypt的参数和算法实现。应用需要适配这些变更,以确保兼容性和用户隐私。
摘要由CSDN通过智能技术生成

电源管理

Android 9引入了一些新功能来改进设备电源管理。
从两个维度进行优化:应用使用频率及优先级、改进省电模式。

电源管理功能可以分为两个类别:
  • 应用待机群组
    基于应用最近使用时间和使用频率,帮助系统排定应用请求资源的优先级。
  • 省电模式改进
    • 更主动地将应用置于应用待机模式
    • 所有APP都受到 后台执行限制
    • 灭屏时,位置服务可能被停用
    • 后台应用无法访问网络

:这些变化适用于所有应用,无论它们是否以 Android 9 为目标。

隐私权变更

增加用户隐私。Android 9 引入了若干行为变更,如限制后台应用访问设备传感器、限制通过 Wi-Fi 扫描检索到的信息,以及与通话、手机状态和 Wi-Fi 扫描相关的新权限规则和权限组。

后台对传感器的访问受限

后台应用访问用户输入和传感器数据受限。Android 9上的App需要检测传感器事件,必须使用***前台服务***。
采取以下限制:

  • 您的应用不能访问麦克风或摄像头。
  • 使用连续报告模式的传感器(例如加速度计和陀螺仪)不会接收事件。
  • 使用变化或一次性报告模式的传感器不会接收事件。
限制访问通话记录

Android 9 引入 CALL_LOG 权限组 并将 READ_CALL_LOGWRITE_CALL_LOGPROCESS_OUTGOING_CALLS 权限移入该组。 在之前的 Android 版本中,这些权限位于 PHONE 权限组。

如果您的应用需要访问通话记录或者需要处理去电,则您必须向 CALL_LOG 权限组明确请求这些权限。 否则会发生 SecurityException。

注:因为这些权限已变更组并在运行时授予,用户可以拒绝您的应用访问通话记录信息。 在这种情况下,您的应用应该能够妥善处理无法访问信息的状况。
更多信息可以查看 运行时权限最佳做法

限制访问电话号码

未获得 READ_CALL_LOG 权限,运行于 Android 9 上的App无法读取电话号码或手机状态

来电和去电关联的电话号码可在手机状态广播(比如来电和去电的手机状态广播)中看到,并可通过 PhoneStateListener 类访问。 但是,如果没有 READ_CALL_LOG 权限,则 PHONE_STATE_CHANGED 广播和 PhoneStateListener 提供的电话号码字段为空

要从手机状态中读取电话号码,请根据您的用例更新应用以请求必要的权限:

  • 要通过 PHONE_STATE Intent 操作读取电话号码
    • 同时需要 READ_CALL_LOG 权限和 READ_PHONE_STATE 权限。
  • 要从 onCallStateChanged() 中读取电话号码
    • 只需要 READ_CALL_LOG 权限。 不需要 READ_PHONE_STATE 权限。
限制访问 Wi-Fi 位置和连接信息

在 Android 9 中,App进行 Wi-Fi 扫描的权限要求比之前的版本更严格。 详情请参阅 Wi-Fi 扫描限制

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值