我正在PC上的Android模拟器中运行一些Android代码。我想在我的Android代码中获取PC的本地IP地址,不确定这是否可行......
我查了以下帖子 how to get ip address of pc in android emulator through code 但看起来它只能给我PC的公共IP地址。
感谢。
答案 0 :(得分:0)
通常,应将Android设备或模拟器视为与开发计算机不同的计算机。
如果你想从android模拟器/设备连接到本地计算机,那么这里有2个选项。
使用将名称指向本地电脑的内部DNS,如果这是您想要的,您甚至可以使用此覆盖“实时”网址。
使用BuildConfig.DEBUG标志或类似机制在实时和调试URL /资源之间切换
e.g。我在导出时调试实时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/";
}
}
}
答案 1 :(得分:0)
您可以查看my own answer here以验证您的Android模拟器实例可访问的各种设备的路由:
可以使用来自的IP地址
10.0.2.2
来访问主机 仿真器。强>这些是从模拟器到达的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
,可选的第二,第三和第四个DNS服务器(如果有)10.0.2.15
,模拟设备自己的网络/以太网接口127.0.0.1
,模拟设备自己的环回接口
包含说明的完整列表可在Android文档“Emulator Networking”中找到。