首页 > 解决方案 > 没有 TLS 的 Android P:network-security-config: cleartextTrafficPermitted IP 不可能(仅域)

问题描述

我正在尝试使用 HTTP 服务器连接到嵌入式设备,该服务器在 android < P (直到我设置targetSdkVersion 28)上运行良好,因为默认情况下启用了网络 TLS的更改。

有一种方法可以选择退出明文流量,但似乎这仅适用于域而不适用于IP 地址


我尝试android:networkSecurityConfig在 Manifest 中使用 IP 而不是域设置一个,但这不起作用:

<network-security-config>
  <domain-config cleartextTrafficPermitted="false">
    <domain includeSubdomains="true">172.16.33.1</domain>
  </domain-config>
</network-security-config>

将此设置为 a<base-config cleartextTrafficPermitted="false">也不起作用。


因此,在没有 domain的情况下,似乎没有办法让非 TLS 通信正常工作。但是因为这是本地网络中的嵌入式设备,所以我们没有域(我们只知道 IP)。

对于所有无法再通信的嵌入式设备来说,这似乎是一个主要问题。此外,“新应用和现有应用的更新需要以 API 级别为目标 [2020 年 11 月为 28]”(从 2018 年 11 月开始,API 26 开始,并且每年都在推进)。

任何想法如何使这成为可能?

标签: androidtls1.2android-9.0-pie

解决方案


<base-config cleartextTrafficPermitted="true">适用于 IP 地址。

(当然也必须true不是false)。


推荐阅读