这是我为了让设备在本地主机上运行的windows PC上获取本地服务实例而必须做的。
在我的设备上打开WiFi并连接到无线网络。
在命令提示符下运行ipconfig。
使用我的以太网适配器本地连接的IPv4地址(因为我通过以太网连接)
变化的Android应用程序的基本URL使用that address
然后我的Android应用程序能够通过该IP地址连接到本地服务实例,而不是10.0.2.2,这在您在模拟器上运行应用程序时起作用。如果有人这么倾向,你可以提取这些URL并检查应用程序是否在模拟器或设备上运行,然后在代码中正确设置IP地址。希望这可以帮助。
编辑对于上述网址提取 - 我创建了一个ApplicationName.java文件,并宣布该变量:
public static String ANDROID_DEVICE_ID = "";
然后设置变量在我最初的活动:
ApplicationName.ANDROID_DEVICE_ID = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);
然后我复制粘贴该设备ID,并在我的api类,使Web服务调用我有以下代码:
private String getCategoriesUrl() {
// TODO: Remove before production
if (AgoraApplication.ANDROID_DEVICE_ID.equals("deviceIdString")) {
_categoriesUrl = _deviceIp + _categoriesUrlSuffix;
}
else {
_categoriesUrl = _emulatorIp + _categoriesUrlSuffix;
}
return _categoriesUrl;
}
因此,当我在任一设备或模拟器上进行调试时,我的应用程序会自动使用适当的IP地址进行服务调用。