从 Android 9 (Pie) 开始,Google Play 要求所有应用默认使用 HTTPS 连接,除非在 network-security-config 中明确指定。
在确保HTTP链接是安全的,可以在 AndroidManifest.xml 文件设置启用明文 HTTP 流量。
方法 1:启用明文 HTTP 流量(自己尝试没用)
-
在
res/xml文件夹中创建一个新的 XML 配置文件,命名为network_security_config.xml:<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">example.com</domain> </domain-config> </network-security-config>
example.com为你开放的HTTP域
2. 在 AndroidManifest.xml 文件中引用这个网络安全配置:
<application
android:networkSecurityConfig="@xml/network_security_config"
... >
...
</application>
方法 2:为整个应用启用明文 HTTP 流量(尝试有用)
你也可以为整个应用启用明文 HTTP 流量,但这可能会降低应用的安全性。
-
在
res/xml文件夹中创建network_security_config.xml文件:<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config cleartextTrafficPermitted="true" /> </network-security-config> -
在
AndroidManifest.xml文件中引用这个网络安全配置:<application android:networkSecurityConfig="@xml/network_security_config" ... > ... </application>
方法 3:使用 HTTPS
推荐的方法是将你的服务器配置为支持 HTTPS,并使用 HTTPS URL。这是最安全的解决方案,符合现代网络安全标准。
例如:
val mediaUri = Uri.parse("https://www.example.com/your-audio-file.mp3")
方法4:使用usesCleartextTraffic(尝试有用)
在AndroidManifest.xml的applicant标签下直接使用android:usesCleartextTraffic="true"