前提:已经在AndroidManifest.xml清单文件中声明了网络权限,网络权限获取正常,手机网络连接正常。
现象:部分机型无法访问网络,如华为P20。
描述:在高版本系统(如Android P)的设备上,如果应用使用的是非加密的明文流量的http网络请求,则会导致该应用无法进行网络请求,https则不会受影响,同样地,如果应用嵌套了webview,webview也只能使用https请求。
解决:在AndroidManifest.xml文件下的application标签增加属性:android:usesCleartextTraffic="true",如下:
<application
android:name="com.wisder.mycloud.app.MyApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:replace="android:icon,name"
android:usesCleartextTraffic="true">
/**其他配置*/
</application>
网上还有其他方式:
1. 将http请求改为https请求
2. 将targetSdkVersion降到28以下