以前有人问过这个问题,但没有得到满意的答复。
从我的 Android 应用程序中,我需要向通过 USB 连接的 PC 发送 HTTP 请求。通常,使用 ADB 的通信是单向的,从 PC 到 Android。
正如上述副本的答案中提到的,这已经在之前完成了:Android Usb Port Forwarding。如果我真的需要,我可以下载这个应用程序并搞砸它,但我更愿意在我自己的应用程序中实现它。
有任何想法吗?
如果 Android 手机支持 USB 网络共享:
现在可以使用此设置向 PC 上运行的 Web 服务器发送 HTTP 请求。
它实际上不是一种方式的通信,而是发起连接的能力。
要使用标准的 android 功能做到这一点,您在概念上必须通过现有的 PC 发起的连接来隧道设备发起的连接。例如,使用现成的工具:
您实际上不必使用 SSH,它只是打包了可以使用的部分。
作为另一种想法,一些支持 USB 网络共享以向 PC 提供移动网络服务的 Android 设备最终会通过 USB 电缆创建一个双向 IP 网络,您可以将其用于其他目的。但是要非常小心,不要意外地通过手机路由所有 PC 的网络流量。
在 USB 中,启动通信的始终是主机(在您的情况下为 PC)。因此,您需要使用一些技巧来使 Android 设备发送请求。PC 可能会定期轮询 Android(例如,每 100 毫秒),如果它有一个未决的 HTTP 请求并相应地收集它,类似于jackbot所做的。我猜这就是 Android 到 USB 端口转发所做的。
应该可以为此目的使用 USB 网络共享。当您在 Android 设备上为您的 PC 启动 USB 网络共享时,PC 和 Android 将在同一个本地网络中。它允许通过 HTTP 访问 PC(例如测试 http 服务器)。
不幸的是,您不能通过本地套接字发送 HTTP 请求,例如 /dev/tty... 或类似的。默认情况下,如果 android 设备获取 IP 地址,将通过 DHCP 或您设置的静态 IP 完成。您需要做的是知道台式计算机的 IP。
你实际上想要完成什么?让应用程序向 localhost 发送请求,该请求将中继到 PC?
这个答案可能有助于“通过 USB 网络共享找到桌面的 ip ”