如何为小于 24 的 API 添加 Android 网络安全配置

Posted

技术标签:

【中文标题】如何为小于 24 的 API 添加 Android 网络安全配置【英文标题】:How to add Android Network Security Config for API less than 24 【发布时间】:2018-10-07 17:27:46 【问题描述】:

Facebook Audience Network 表示。

在 Audience Network android SDK 中,我们使用 127.0.0.1 (localhost) 作为缓存代理来缓存 SDK 中的媒体文件。由于Android P,明文流量(未加密的HTTP)默认会被拦截,这会影响SDK的媒体缓存功能,并可能影响用户体验和广告收入。

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

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

【问题讨论】:

【参考方案1】:

默认情况下它是这样工作的。较旧的设备将无法识别 android:networkSecurityConfig,因为它在 API 级别 24 (Android 7.0) 之前不存在。

【讨论】:

那么在 Manifest 中遇到android:networkSecurityConfig 时,应用程序不会在旧设备中崩溃吗? @Zeeshan 不,它会被忽略 @Zeeshan:总的来说,Android 会忽略它无法识别的 XML 属性,因为它们可能与运行应用程序的版本之外的某些未来版本的 Android 相关。跨度> @ZayidMohammed:API 级别 15-23 将忽略 android:networkSecurityConfig,因为这些版本的 Android 发布时不存在。如果您有android:networkSecurityConfig,API Level 24+ 将尊重您在其中输入的内容,请记住已经发生了一些变化(例如,WebView 一开始没有注意android:networkSecurityConfig)。 @ZayidMohammed:嗯,该消息在 Android 7.0 之前不存在,除非它是由某些设备制造商添加的。您正在测试的具体设备型号是什么?

以上是关于如何为小于 24 的 API 添加 Android 网络安全配置的主要内容,如果未能解决你的问题,请参考以下文章

如何为 android api 8 (Froyo) 添加 PBKDF2WithHmacSHA1

如何为Android创建小于O的通知通道

如何为 android 制作更长的 facebook Graph API 会话

如何为个人 android 项目获取 OpenStreetMaps 或 OpenTilesMaps API?

如何为 API 级别 < 23 的项目设置重力

如何为我的 Android 应用获取 Google Places API 密钥