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

随机推荐

  1. Android:控件布局(相对布局)RelativeLayout
  2. Android异步处理三:Handler+Looper+Messag
  3. Android横竖屏总结
  4. 【Android】附加Android源代码Androidand
  5. Android系统自带样式(@android:style/)
  6. ImageView下载图片加载
  7. 详解android:scaleType属性
  8. Android(安卓)网络开发详解
  9. android 背景边框变圆角
  10. How to add a new keycode in android