首页 文章

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

提问于
浏览
53

我有一个通过USB连接到我的PC的Android设备(三星galaxy选项卡) .

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

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

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

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

7 回答

  • 24

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

    • 首先使用USB线连接您的真实设备(确保您可以在设备上传应用程序)

    • 从您连接的设备获取IP地址,该地址以192.168.x.x:port开头

    • 打开"Network and Sharing Center"

    • 点击设备上的"Local Area Connection"并选择"Details"

    • 将"IPv4 address"复制到您的应用并将其替换为: http://192.168.x.x:port/test.php

    • 将您的应用(再次)上传到您的真实设备

    • 转到属性并打开"USB tethering"

    • 在设备上运行您的应用程序

    它现在应该工作 .

  • 15

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

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

    Note: 使用我的iPhone作为wifi热点,并连接我的电脑和我的Android设备工作,但iPhone 4S连接速度慢,经常退出 .

    My solution is as follows:

    • 在PC上拔下网线并关闭wifi .

    • 在Android设备上关闭wifi

    • 通过USB将android连接到pc

    • 在android菜单中打开"USB Tethering" . (在网络下 - >更多......->绑定和便携式热点“)

    • 获取USB系绳指定的计算机IP . (打开命令提示符并键入"ipconfig"然后查找USB网络适配器分配的IP)

    • 使用找到的IP地址而不是localhost在PC上打开浏览器进行测试 . 即 http://192.168.1.1/myWebSite

    • 在android上打开浏览器并测试它的工作原理

  • 3

    这是我的Android应用程序代码的一部分:

    此应用程序能够与服务器上运行的 a servlet 和USB-Debuggable模式中插入的 an Android device 之间的HTTP get-post模型进行通信(因为应用程序处于开发进度中) .

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

    enter image description here

    获取您的IP地址

    • 转到命令提示符

    • 类型 ipconfig

    • 点击进入

    在列表中, IPv4 Address 是您的IP .

  • 0

    我在Windows电脑上做到了这一点,它完美无缺!

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

    它与这些简单的步骤一起工作!

  • 4

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

    • 防火墙 - 关闭它,一切正常后,您可以在入站规则下添加规则,启用Apache HTTP Server(UDP和TCP)(或您正在使用的任何HTTP服务器)警告 - 如果您关闭防火墙,您的计算机将变为易受互联网攻击 . 因此,首先关闭互联网并断开网络连接 .

    • 插入USB线 . 如果弹出网络窗口,请选择家庭网络 . 如果它没有't pop up it'可能设置为公共(这将无法工作),所以转到:控制面板\网络和Internet \网络和共享中心(在win7中)并将其设置为家庭网络 . 按下它以分享图片,音乐后,它可能会为您提供下一个屏幕...只需单击取消即可 . 在主屏幕上,家庭网络仍将处于活动状态 .

    • 你需要电脑's IP, localhost or other aliases don'工作 . 要获取IP,请在Windows 's command prompt, type ipconfig and look for IPv4 Address. . . . . . . . . . . : 192.168.###.### That'中将手机提供的IP提供给您的计算机

    • 现在你应该完成,在手机的浏览器中,尝试从你的计算机服务器访问测试html文件它应该显示正常 .

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

    Part II -- Setting IP to fixed/static.

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

    • 连接电话并连接电话后,返回网络和共享中心,然后单击本地区域连接"Connections:"

    screenshot

    • 在下一个屏幕上选择属性,然后突出显示IP 4并按其中的属性并单击"Use the following IP address"

    • 将默认网关和子网掩码与ipconfig中的完全相同,对于IP地址,仅将最后3位数字更改为1到255之间的任何值

    screenshot

    该IP将是您的新固定/静态IP,下次插入电话时它将保持不变 .

  • 0

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

  • 1

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

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

    所以按照约翰的指示:

    • 拔掉PC上的所有网线并关闭wifi .

    • 关闭Android设备上的wifi

    • 通过USB将Android设备连接到pc

    • 在Android菜单中打开“USB Tethering”(USB调制解调器/ USB Cellular Modem / USBשימושכמודםסלולרי) . (在网络下 - >更多......->绑定和便携式热点“)

    • 此USB连接将作为单个PC连接的DHCP服务器,因此它将为您的PC在其本地USB网络中分配一个专用(动态)IP . 现在,您所要做的就是告诉客户端应用程序此IP和端口 .

    • 获取PC的IP(已通过USB系绳电缆分配 . )(打开命令提示符并键入"ipconfig"然后查找USB网络适配器分配的IP,在Linux中查找 ifconfig 或Ubuntu的"Connection information"等 . )

    • 告诉应用程序连接到那个IP(即192.168.42.87),类似于(Java - 客户端):

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

    请享用..

相关问题