比较坑,兼容新的系统Android9 Android10 。
startForeground(NOTIFICATION_ID, notification)
需要在AndroidManifest.xml中加入以下普通权限,不然在9.0系统中通知没法显示或者直接报错。
webview找不网页
解决方法:在AndroidManifest.xml文件中的Application标签添加android:usesCleartextTraffic="true"
target sdk 28 ,http 建议改为https,无论什么环境!!
限制 HTTP 网络请求(*)
Android 9.0 中限制了 HTTP(明文传输)网络请求,若仍继续使用HTTP请求,则会在日志中提示以下异常(只是无法正常发出请求,不会导致应用崩溃):
java.net.UnknownServiceException: CLEARTEXT communication to xxx not permitted by network security policy
适配的方法如下:
第一种
在资源目录中新建一个 xml 文件作为网络安全配置文件,例如 xml/network_security_config.xml,然后在文件中填写以下内容:
在AndroidManifest.xml进行配置:
... android:networkSecurityConfig="@xml/network_security_config"> ...
第二种
Android 6.0 中引入了是否允许网络使用明文传输的配置:
原来默认为 true,但在 Android 9.0 中默认值改为了 false,因此将配置手动设为 true 即可解决明文传输被限制的问题