Android Oreo与Pie版本中INTERNET权限失效问题求助
解决Android Oreo/Pie下网络请求失败的问题
Hey Jameel! 先给你吃个定心丸:你不需要申请额外的权限,INTERNET权限在Android 8.0(Oreo)和9.0(Pie)版本里依然是正常生效的,而且它属于「普通权限」,不需要动态申请,只要在Manifest里声明就够了。
那问题大概率出在其他地方,我给你列几个最常见的排查方向:
明文网络请求被限制
Android 8.0及以上版本默认阻止App发起明文HTTP请求(只能用HTTPS)。如果你的服务器用的是HTTP协议,就会导致请求失败。解决方法是配置网络安全策略:- 在
res/xml目录下创建network_security_config.xml文件,内容如下:<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config cleartextTrafficPermitted="true" /> </network-security-config> - 在Manifest的
application标签里添加引用:<application ... android:networkSecurityConfig="@xml/network_security_config">
- 在
后台网络请求被限制
Android 8.0引入了后台执行限制,如果你是在后台Service或者非前台任务里发起网络请求,系统可能会限制你的App访问网络。这种情况你可以:- 如果是需要持续的后台任务,改用Foreground Service(需要显示通知);
- 如果是延迟/周期性任务,用
WorkManager替代,它能适配不同Android版本的后台规则。
检查代码中的异常与日志
建议你打开Logcat,过滤网络相关的错误日志(比如ConnectException、SecurityException),看看具体的报错信息——这往往能直接定位问题。比如如果是明文请求被拦,日志里会有类似Cleartext HTTP traffic to xxx not permitted的提示。严格模式的影响(调试阶段)
如果你在调试时开启了严格模式,Android O+可能会对后台网络请求抛出StrictModePolicyException。可以暂时关闭严格模式,或者调整它的规则来适配测试场景。
先从这些方向排查,应该能找到问题所在~
内容的提问来源于stack exchange,提问作者Jameel
相关产品推荐
相关产品推荐

