1

PCのAndroidエミュレーターでAndroidコードを実行しています。AndroidコードでPCのローカルIPアドレスを取得したいのですが、これが可能かどうかわかりません...

次の投稿 で、AndroidエミュレーターでPCのIPアドレスをコードで取得する方法を確認しまし たが、PCのパブリックIPアドレスしか取得できないようです。

ありがとう。

4

2 に答える 2

1

Androidエミュレータインスタンスにアクセスできるさまざまなデバイスへのルートを確認するために、ここで私自身の回答を確認できます。

10.0.2.2エミュレータからのIPアドレスを使用してホストマシンに到達できます。

エミュレータから到達したIPアドレスは次のとおりです。

  • 10.0.2.1、ルーター/ゲートウェイアドレス。
  • 10.0.2.2、ホストループバックインターフェイスの特別なエイリアス(つまり、開発マシンの127.0.0.1)
  • 10.0.2.3、最初のDNSサーバー
  • 10.0.2.4// 10.0.2.510.0.2.6オプションの2番目、3番目、4番目のDNSサーバー(存在する場合)
  • 10.0.2.15、エミュレートされたデバイス自体のネットワーク/イーサネットインターフェイス
  • 127.0.0.1、エミュレートされたデバイス自体のループバックインターフェイス

手順を含む完全なリストは、Androidのドキュメント「エミュレーターネットワーキング」にあります。

于 2013-03-27T03:23:35.927 に答える
0

通常、Androidデバイスまたはエミュレーターは、開発用コンピューターとは別のコンピューターと見なす必要があります。

つまり、Androidエミュレーター/デバイスからローカルコンピューターに接続する場合は、2つのオプションがあります。

  1. ローカルPCを指す名前を指す内部DNSを使用します。必要に応じて、このオーバーライド「ライブ」URLを使用することもできます。

  2. BuildConfig.DEBUGフラグまたは同様のメカニズムを使用して、ライブURLとデバッグURL/リソースを切り替えます

たとえば、エクスポート時にライブURLを切り替え、テスト時にデバッグするには、次を使用します。

public final class MyAppConstants
{
    // url base for all requests to my API
    public static final String BASE_URL;

    // auto-switch between live and debug urls based on usage
    static 
    {
        if (BuildConfig.DEBUG)
        {
            URL_BASE = "http://debug.server.com/";
        }
        else
        {
            URL_BASE = "http://live.server.com/";
        }
    }
}
于 2013-03-27T03:10:31.370 に答える