1. ホーム
  2. java

[解決済み] Android (9) Pieですべてのネットワーク接続タイプHTTPとHTTPSを許可する方法は?

2022-04-13 22:57:32

質問

Android 9 Pie からは、暗号化されていないリクエストは絶対に動作しません。また、デフォルトでTLSを使用するようにシステムから指示されます。 この機能はこちらでご覧いただけます ですから、HTTPS経由のリクエストだけであれば安全です。しかし、異なるサイトを経由してリクエストを行うアプリ、例えばブラウザのようなアプリはどうでしょう。

Android 9 Pie で、すべての種類の接続 HTTP および HTTPS へのリクエストを有効にするには、どうすればよいですか?

解決方法を教えてください。

これを実装する簡単な方法は、この属性を AndroidManifest.xml ここで、すべての http をすべてのリクエストに適用します。

<application android:usesCleartextTraffic="true">
</application>

しかし、もしあなたがいくつかの その他の設定 を使用すると、例えば、異なるリンクに対して http を指定する必要があります。 res/xml/networkSecurityConfig.xml ファイルを作成します。

Android 9 Pieでこれを行うには、以下のように networkSecurityConfig をマニフェストで指定します。 application タグをこのように使用します。

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application android:networkSecurityConfig="@xml/network_security_config">




    </application>
</manifest>

そして xml という名前のファイルを作成する必要があります。 network_security_config マニフェストで命名した方法と同じように、暗号化なしですべてのリクエストを有効にするには、ファイルのコンテンツは次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>
</network-security-config>

ここから先は大丈夫です。これで、あなたのアプリはあらゆる種類の接続に対してリクエストを行うようになります。このトピックの追加情報については ここを読む .