Android9以上でhttp平文通信を行う
- 2019年12月11日
- Android
Android9以上ではデフォルトでSSL/TLS通信を行うようになっています。
しかし、接続先によっては非SSL/TLS通信を行う必要もあるかと思います。
何も対応を行わずにアプリから通信を行おうとすると
“java.io.IOException: Cleartext traffic not permitted:(通信先)”
といったエラーが出力されます。
対応として、AndroidManifestの<application>に
android:usesCleartextTraffic=”true”
を追記して全ての平文通信を許可するか、
設定ファイルを別で作り、同じように <application>に
android:networkSecurityConfig=”設定ファイル”
を追記しドメイン毎に許可をする方法があります。
設定ファイルの中身の例です。
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">許可したいドメイン</domain>
</domain-config>
</network-security-config>
複数指定したい場合は
“<domain includeSubdomains="true">許可したいドメイン</domain>
“
を必要な数だけ追加すればOKです。
水曜担当:Tanaka
tanaka at 2019年12月11日 10:00:43