💻

Android エミュレータから localhost に接続する

2023/05/11に公開

Android アプリから localhost に接続する

ローカル PC で開発しているサーバに対して、エミュレータ上の Android アプリから HTTP 接続をする。

localhost を向けるためのアドレスを設定する

http://10.0.2.2 を使う。

https://developer.android.com/studio/run/emulator-networking

Network Address Description
10.0.2.2 Special alias to your host loopback interface (127.0.0.1 on your development machine)

アプリから HTTP 通信を許可する

Android 9.0 以降、非 SSL 通信がデフォルトで許可されなくなった。
localhost で開発する場合、https にするのはコストが高いので、http のまま通信がしたくなる。
アプリから特定の URL に対して非 SSL 通信が行えるように設定する。

  1. res/xml/network_security_config.xml を作成する。

    <network-security-config>
      <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">10.0.2.2</domain>
      </domain-config>
    </network-security-config>
    
  2. AndroidManifest.xml に network_security_config を指定する。
    https://developer.android.com/training/articles/security-config#manifest

    <application
        ...
        android:networkSecurityConfig="@xml/network_security_config">
        ...
    </application>
    
GitHubで編集を提案

Discussion