从USB连接的Android移动设备访问PC的本地主机

时间:2012-03-27 10:20:24

标签: android

我有一个通过USB连接到我的电脑的Android设备(三星Galaxy标签)。

我想使用WebServices并在我的Android设备上运行一个位于我的PC的本地xampp服务器上的网页。

如果我的PC和Android设备都连接在同一个无线网络上,我就可以实现它。

但是,只使用USB连接就可以在没有任何无线连接的情况下访问localhost页面。

(PS:当我在模拟器上运行应用程序并使用ip 10.0.2.2访问我的PC上的localhost时,这种情况也有效)

12 个答案:

答案 0 :(得分:26)

我终于解决了这个问题。我使用了三星Galaxy S和Froyo。下面的“端口”与您用于模拟器的端口(10.0.2.2:port)相同。 我做了什么:

  1. 首先使用USB线连接您的真实设备(确保您可以在设备上传应用程序)
  2. 从您连接的设备获取IP地址,该地址以192.168.x.x:port
  3. 开头
  4. 打开“网络和共享中心”
  5. 点击设备上的“本地连接”,然后选择“详细信息”
  6. 将“IPv4地址”复制到您的应用中,并将其替换为:http://192.168.x.x:port/test.php
  7. 将您的应用(再次)上传到您的真实设备
  8. 转到属性并在
  9. 上打开“USB tethering”
  10. 在设备上运行您的应用程序
  11. 现在应该可以了。

答案 1 :(得分:14)

我已经阅读了很多论坛并试过播放应用但直到现在才找到解决方案。

我认为我的情景与您的相似,但我会澄清以帮助他人。我有一个本地托管的网站和我的Android应用程序使用的Web服务。我需要在只有我的笔记本电脑和没有网络连接的情况下进行演示。

注意:使用我的iPhone作为wifi热点并连接我的电脑和我的Android设备都有效,但iPhone 4S连接很慢并且经常退出。

我的解决方案如下:

  • 拔掉电脑上的网线并关闭wifi。
  • 在Android设备上关闭wifi
  • 通过USB将Android连接到电脑
  • 打开" USB Tethering"在Android菜单中。 (在网络下 - >更多...-> Tethering和便携式热点")
  • 获取USB系绳指定的计算机IP。 (打开命令提示符并键入" ipconfig"然后查找USB网络适配器分配的IP)
  • 使用找到的IP地址而不是localhost在PC上打开浏览器进行测试。即http://192.168.1.1/myWebSite
  • 在Android上打开浏览器并测试它的工作原理

答案 2 :(得分:10)

Google发布了针对此类问题here的解决方案。

步骤:

  • 在启用了USB调试的情况下将您的Android设备和开发计算机连接起来
  • 在开发计算机中打开Chrome,打开新标签,右键单击新浏览器标签,然后单击检查
  • 点击右上角three dots上的三个点图标,->更多工具,远程设备。
  • 在屏幕底部查看,确保您的设备名称以绿色圆点显示在列表中。
  • 在设置部分下面查看,选中端口转发标记
  • 添加规则。例如,如果您的python网络服务器在您的计算机localhost:5000上运行,并且您想从设备端口3333进行访问,则在左侧键入3333,然后键入localhost:5000,然后单击添加规则。
  • Voila,现在您可以从设备访问Web服务器。尝试打开新的浏览器标签,然后从您的设备访问http://localhost:3333

答案 3 :(得分:5)

我是在Windows电脑上完成的,它运行得很好!

打开手机中的USB Tethering。 在计算机的命令提示符下键入ipconfig,找到“ethernet adapter local area connection x”的ipv4(主要是第一个) 现在转到您的移动浏览器,使用您的Web应用程序的端口号键入该ipv4。例如: - 192.168.40.142:1342

它适用于这些简单的步骤!

答案 4 :(得分:4)

以下是我的Android应用程序代码:

此应用能够与服务器上运行的 servlet Android设备之间的HTTP get-post模型进行通信> 已插入USB-Debuggable模式(因为应用正在开发进度)。

当服务器Tomcat Apache 7运行时(应用程序开发完成时),我也可以通过Wi-Fi运行应用程序。

enter image description here

获取您的IP地址

  1. 转到命令提示符
  2. 输入ipconfig
  3. 点击进入
  4. 在列表中, IPv4地址 是您的IP。

答案 5 :(得分:1)

通过USB线连接Android手机并访问计算机上的http服务器。

  1. 防火墙 - 关闭它,一旦一切正常,您可以添加规则 在入站规则下,启用Apache HTTP Server(UDP和TCP)(或您正在使用的任何HTTP服务器)警告 - 如果关闭防火墙,您的计算机将容易受到Internet攻击。因此,首先关闭互联网并断开与网络的连接。
  2. 插入USB线。如果弹出网络窗口,请选择家庭网络。如果它没有弹出它可能设置为公共(这将无法工作),所以转到:控制面板\网络和Internet \网络和共享中心(在win7中)并将其设置为家庭网络。按下它以共享图片,音乐后,它可能会为您提供下一个屏幕...只需单击取消即可。在主屏幕上,家庭网络仍将处于活动状态。
  3. 您需要计算机的IP,localhost或其他别名不起作用。要获取IP,请在Windows的命令提示符下键入ipconfig并查找 IPv4地址。 。 。 。 。 。 。 。 。 。 。 :192.168。###。### 这是你的手机给你的电脑的IP
  4. 现在你应该在手机浏览器中尝试从你电脑的服务器上访问测试html文件,它应该可以正常显示。

    对于Android开发人员,现在在你的Android代码中,你必须使用“http://”,否则它将无法正常工作。例如:MyAsyncTask.execute(“http://192.168.123.123/test.html”)

  5. 第二部分 - 将IP设置为固定/静态。

    现在一切正常,每次拔下电缆并将其重新插入时,您的IP都会发生变化。如果您在代码内部使用它,则每次都必须更新它!解决方案我想到的是将IP设置为静态。

    1. 连接电话并连接电话后,返回网络和共享中心,然后点击本地连接“连接:”
    2. screenshot

      1. 在下一个屏幕上选择属性,然后突出显示IP 4并按其中的属性并单击“使用以下IP地址”
      2. 将默认网关和子网掩码与ipconfig完全相同,对于IP地址,仅将最后3位数字更改为1到255之间的任何数字
      3. screenshot

        IP将是您的新固定/静态IP,下次插入手机时它将保持不变。

答案 6 :(得分:1)

如何在实际的Android设备中轻松访问LocalHost->通过USB将PC与android设备连接

  1. 转到Chrome检查,点击“ f12”或Control + Shift + C

Chrome Inspection tool

  1. 检查镀铬检查工具的底部。

  2. 现在转到“远程设备”选项卡中的设置。

Remote Devices Tab

  1. 选中“发现USB设备”选项以及“端口转发”选项。

  2. 现在单击“添加规则”,输入任何设备端口,例如(4880),然后在“本地地址”中输入本例中的本地主机的实际地址,例如(127.0.0.1:480)

  3. 添加规则后,转到代码URL(http://127.0.0.1:4880)中的android studio->。记住将端口从480-> 4880更改。

  4. 转到Chrome中的“远程设备”选项卡,然后单击所连接的设备。添加新URL(127.0.0.1:4880) Inspect the Android Device Chrome Browser

检查您的实际设备Chrome浏览器,然后开始在实际Android设备上调试代码。

答案 7 :(得分:0)

检查USB连接类型选项。你应该有一个名为“互联网通过”。这样可以让您的手机使用与PC相同的连接。

答案 8 :(得分:0)

我非常喜欢John的答案,但我想通过在USB连接的Mobile上运行客户端TCP和本地PC上的服务器来对那些想要测试某些客户端//服务器配置的人进行一些更改

首先很明显,10.0.2.2不起作用,因为这是一个真正的硬件移动设备而不是模拟器。

所以按照约翰的指示:

  • 拔下PC上的所有网线并关闭wifi。
  • 关闭Android设备上的wifi
  • 通过USB将Android设备连接到PC
  • 在Android菜单中打开“USB Tethering”(USB调制解调器/ USB Cellular Modem / USBשימושכמודםסלולרי)。 (在网络 - >更多...-> Tethering和便携式热点“)

    • 此USB连接将作为单个PC连接的DHCP服务器,因此它将为您的PC分配本地USB网络中的专用(动态)IP。现在您要做的就是告诉客户端应用程序这个IP和端口。
  • 获取PC的IP(已通过USB系绳分配。) (打开命令提示符并键入“ipconfig”然后查找 USB网络适配器分配的IP,在Linux中ifconfig或Ubuntu的“连接信息”等。)

  • 告诉应用程序使用类似(Java - 客户端)的连接到该IP(即192.168.42.87):

    String        serverIP      = "192.168.42.87";
    int           serverPort    = 5544;
    InetAddress   serverAddress = InetAddress.getByName(serverIP);
    Socket        socket         = new Socket(serverAddress, serverPort);
    ...
    

    享受..

答案 9 :(得分:0)

您好,您可以通过

访问xampp本地主机
  1. 控制面板->
  2. Windows Defender防火墙->
  3. 高级设置(在左侧)->入站规则->新规则->端口->在特定的本地端口中写入您的Apache端口->下一个->下一个 那么您可以使用本地PC IP地址访问本地主机:

答案 10 :(得分:0)

  1. 确保您拥有adb installed on the computerUSB debugging enabled on the phone,并且手机已允许访问计算机。通过USB电缆将手机插入计算机,并确保它可见(它应该显示在Bash命令adb devices中。
  2. 在计算机的Chrome浏览器中,打开chrome:// inspect /#devices ,单击“端口转发”按钮,选中“启用端口转发”,然后在您要运行的计算机上添加端口希望可以通过电话(detailed instructions here)进行访问。您需要继续打开运行chrome:// inspect /#devices的标签。
  3. 在手机的浏览器中,导航到localhost:[port_number],它应该显示计算机上正在运行的内容。

这适用于Windows和Ubuntu Linux,也适用于Mac。

答案 11 :(得分:0)

我遇到的问题也许对某些人有帮助,我工作了很长时间,我的电脑和 android 设备连接到同一个 WiFi 网络,而 android 设备通过打开端口 8080 的 pc 的 IPV4 地址连接到防火墙.

一天: 我安装了 Genymotion 模拟器,以便在不同屏幕上调试 UI。 感谢 Genymotion/Virtualbox 网络配置,它毁了我的 WiFi 适配器。

修复方法是在 WiFi 网络适配器上重新配置 IPV4/TCP 设置:

enter image description here