Android R新特性:针对Android R 的应用

Android 11平台包括可能会影响你的应用程序的行为更改。以下行为更改适用于在Android 11上运行的所有应用,无论targetSdkVersion如何,你应该测试你的应用程序,然后根据需要对其进行修改以适当地支持它们.

注意:除了此页面上列出的更改外,Android 11还引入了大量更改和限制以增强用户隐私。后面会陆续更新。

 

Scoped storage


为了给开发人员更多的测试时间,面向Android 10(API级别29)或更低版本的应用仍可以请求requestLegacyExternalStorage属性。此标志允许应用程序暂时退出与范围存储相关的更改,例如授予对不同目录和不同类型媒体文件的访问权限。但是,当你将应用更新为Android 11时,将无法使用requestLegacyExternalStorage,并且没有其他可用选项提供退出功能。


Directory access restrictions


如果你的应用面向Android 11并使用存储访问框架(SAF),则无法再使用ACTION_OPEN_DOCUMENT和ACTION_OPEN_DOCUMENT_TREE 这些action来访问某些目录。


Storage permissions


如果你的应用以Android 11为目标,则与存储权限相关的若干行为更改将生效,后面博客会更新详细信息


MAC randomization


在针对Android 10(API级别29)及更低版本的应用上,MAC随机化是按SSID进行的,因为Passpoint可以连接到同一配置文件的不同SSID。在针对Android 11(API级别“ R”)及更高版本的应用中,Passpoint网络的MAC随机化已更改为每个完全合格的域名(FQDN)。


Netlink MAC restrictions


在以API等级R或更高级别为目标的应用程序上,非特权应用程序将无法访问设备的MAC地址;只有具有IPv4地址的网络接口才可见。这会影响getifaddrs()和NetworkInterface.getHardwareAddress()方法,以及发送RTM_GETLINK网络链接消息。这是“不适用于MAC地址”中提供的指导的强制实施



     从Android 11 Developer Preview 1开始,尚未完全实现所有这些更改。下表描述了所有非系统应用程序的当前功能,无论目标API级别如何:
    所有网络接口都可以通过NetworkInterface和getifaddrs()获得
    对于具有MAC地址的接口,NetworkInterface.getHardwareAddress()返回02-00-00-00-00-00
    应用程序可以在NETLINK_ROUTE套接字上使用bind()函数
    应用程序开发人员可以调用IP命令以获取有关接口的信息

上面的列表是对当前行为的描述,但是你不应依赖于它来更新应用程序,因为此部分顶部的描述将与稳定版Android 11一起发布。

请注意,大多数开发人员应使用ConnectivityManager的较高级别的API,而不是较低级别的NetworkInterface / getifaddrs()API。
 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值