Android 9.0 适配:targetSdkVersion >= 28
一、Android P 限制明文流量的网络请求
1、问题
not permitted by network security policy。
2、原因:Android P 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉。
3、解决方案:
步骤 1:res/xml 文件夹新建 network_security_config.xml 文件,如下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
步骤 2:在 AndroidManifest.xml 引用,如下:
<application
// 明文网络 问题配置
android:networkSecurityConfig="@xml/network_security_config"
>
</application>
二、Apache HTTP 客户端弃用
1、问题:环信 等第三方 SDK 用到 Apache HTTP 的库,报错找不到对应类。
2、原因:从 Android 9.0 开始,默认情况下 Apache HTTP 库已从 bootclasspath 中移除。
3、解决方案:在 AndroidManifest.xml 如下配置。
<application
// 明文网络 问题配置
android:networkSecurityConfig="@xml/network_security_config"
>
// Apache HTTP 问题配置
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
</application>
三、挖孔屏适配
解决方案:
- 有状态栏的页面,不会受到挖孔屏特性的影响。(不需要适配)。
- 全屏显示的页面,系统挖孔屏方案会对应用界面做下移避开挖孔区显示。(需要适配)(方案:Android刘海屏、水滴屏全面屏适配方案)
- 沉浸式显示的页面,避免挖孔挡住UI布局,需要做好适配。(UI 设计避开刘海区域)