如何为API版本低于24的Android应用程序添加网络安全配置

24

Facebook Audience Network表示。

在Audience Network Android SDK中,我们使用127.0.0.1(本地主机)作为缓存代理来缓存SDK中的媒体文件。自Android P以来,默认情况下将阻止明文流量(未加密的HTTP),这将影响SDK的媒体缓存功能,并可能影响用户体验和广告收入。

现在,如果我尝试在我的AndroidManifest中添加此行android:networkSecurityConfig="@xml/network_security_config",我会收到警告,因为属性networkSecurityConfig在API 24及更高版本中使用,而我的应用程序支持minSdkVersion 15

我该如何添加android:networkSecurityConfig,以便不会影响小于24的API?

1个回答

46

默认情况下,它以这种方式工作。由于android:networkSecurityConfig在API Level 24(Android 7.0)之前不存在,所以旧设备将无法识别它。


3
如果在Manifest中遇到android:networkSecurityConfig,那么旧设备上的应用程序会崩溃吗? - Zeeshan
6
@Zeeshan 不,它将被简单地忽略。 - MatPag
4
总体而言,Android会忽略它不认识的XML属性,因为这些属性可能对于比应用程序运行的版本更高的某个未来版本的Android是相关的。 - CommonsWare
1
@ZayidMohammed:嗯,除非某些设备制造商添加了该消息,否则在Android 7.0之前是不存在的。您正在测试哪些具体的设备型号? - CommonsWare
1
@oiyio:啊,对了,我忘记了usesCleartextTraffic。我的说法仍然正确——在API Level 24以下,Android本身不支持网络安全配置。但是,针对您的特定目标,您也可以使用usesCleartextTraffic并获得对API Level 23的支持。如果您需要支持比这更早的东西,您需要查看第三方解决方案。 - CommonsWare
显示剩余9条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接