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。
更多相关文章
- android Activity之间数据传递 Parcelable和Serializable接口的
- Android面试题(经典)
- [总结]Android系统体系结构
- 让我们来看看安卓这十年到底有哪些变化
- 《Android第一行代码》first reading 一
- 安卓-开发常见问题之修改android工程的jar包版本
- android 中的监听器与内部匿名类
- 抓取Android或IOS端API接口
- 20172314 2017-2018-2《程序设计与数据结构》第十一周学习总结