PCのAndroidエミュレーターでAndroidコードを実行しています。AndroidコードでPCのローカルIPアドレスを取得したいのですが、これが可能かどうかわかりません...
次の投稿 で、AndroidエミュレーターでPCのIPアドレスをコードで取得する方法を確認しまし たが、PCのパブリックIPアドレスしか取得できないようです。
ありがとう。
PCのAndroidエミュレーターでAndroidコードを実行しています。AndroidコードでPCのローカルIPアドレスを取得したいのですが、これが可能かどうかわかりません...
次の投稿 で、AndroidエミュレーターでPCのIPアドレスをコードで取得する方法を確認しまし たが、PCのパブリックIPアドレスしか取得できないようです。
ありがとう。
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.5
、10.0.2.6
オプションの2番目、3番目、4番目のDNSサーバー(存在する場合)10.0.2.15
、エミュレートされたデバイス自体のネットワーク/イーサネットインターフェイス127.0.0.1
、エミュレートされたデバイス自体のループバックインターフェイス
手順を含む完全なリストは、Androidのドキュメント「エミュレーターネットワーキング」にあります。
通常、Androidデバイスまたはエミュレーターは、開発用コンピューターとは別のコンピューターと見なす必要があります。
つまり、Androidエミュレーター/デバイスからローカルコンピューターに接続する場合は、2つのオプションがあります。
ローカルPCを指す名前を指す内部DNSを使用します。必要に応じて、このオーバーライド「ライブ」URLを使用することもできます。
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/";
}
}
}