隐私策略更新 | Android 11 应用兼容性适配

Android 11 强化了隐私策略,应用需适应新变化,包括处理Content URI分享、递增式权限申请、在前台访问敏感数据和使用可重置标识符。应用需在请求权限时遵循用户期望,尤其是位置权限。Android 11要求递增式位置权限请求,限制后台位置访问,并弃用不可重置标识符。开发者需更新代码以兼容新版本。
摘要由CSDN通过智能技术生成

作者 / Fred Chung

Android 11 的最终版本已正式发布!该版本延续了之前发行版本里不断改进的隐私策略,为用户提供更加完善的控制机制和透明度,并帮助应用更好地处理自身的数据。

 

其中很多优化将当前安全策略的最佳实践应用于最近的 Android 发行版本中 (它们并不仅仅针对 Android 11)。在本文中,我们将以下面四个最佳实践作为切入点,助力您的应用设计与时俱进,并计划开始进行兼容性测试。

  1. 处理内容 URI 分享

  2. 递增式权限申请

  3. 在前台访问敏感数据

  4. 使用可重置的标识符

为其它应用提供合适的 URI 权限

随着 Android 11软件包可见性的策略更新,目标 API 级别为 30 的应用对设备上已安装的其它软件包默认仅拥有受限的可见性。这样的设计旨在为应用 "查看" 设备上的其它已安装软件包时,提供更好的 "问责" 制度。

 

为了简化迁移,对于常见的应用场景,我们提供了实现指南。通常,应用需要具备对其它已安装软件包的可见性 (通过 PackageManager API 验证) 才可以和其它软件包进行交互。该特性通常应用于诸如: 启动服务,或者访问属于其它应用的 Content Provider。

  • 实现指南

    https://developer.android.google.cn/preview/privacy/package-visibility-use-cases

  • PackageManager

    https://developer.android.google.cn/reference/android/content/pm/PackageManager

您访问 Content Provider 的模式可能不是通过发送显式 intent 到某个特定的应用,而是通过发送隐式 intent。这样的话,您无法预判接收端应用 (最终处理这个 intent 的应用) 的目标 API 等级,而这个等级决定了接收端应用是否会受到 Android 11 中引入的应用包可见性限制的影响。

 

为了保证接收端应用能够 "查看" 您的软件包,从而能够访问任何共享的 URI,您需要在 intent 中添加 FLAG_GRANT_READ_URI_PERMISSION 和/或者 FLAG_GRANT_WRITE_URI_PERMISSION。请注意,写入权限并不包含读取访问权限。当被 intent 触发以后,接收端应用会被授予对相关 URI 的临时访问权限。

val shareIntent = Intent(Intent.ACTION_VIEW).apply {
    flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
    data 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值