Android客户端应用程序(可能通过USB使用ADB)

时间:2011-11-01 20:43:31

标签: java android usb adb

电话信息: Droid Bionic Android 2.3.4 USB调试已启用

我正在考虑编写一个供个人使用的应用程序,我可以将数据从客户端(在手机上)发送到服务器应用程序(在我的计算机上),希望通过USB。我使用Android 2.3.4找到的唯一建议是使用ADB,然后使用TCP转发做一些事情。

我在使用端口8001的计算机之间编写了一个简单的服务器和客户端应用程序,但是在我的android上使用客户端与我的计算机上的服务器部件一起工作时遇到了问题。我可以创建一个套接字来与我的计算机(192.168.1.26,8001)交谈,但似乎无法让它工作,因为java设备上的java与我所做的comptuer客户端不同。有没有人知道一个非常简单的教程或示例我可以看看只是将客户端连接到服务器块?我之前看过的所有例子都很复杂。

至于USB部分,我希望能够让我的应用程序无需通过网络即可运行。我已经看到了使用“ADB forward tcp:port tcp:port”的事情,但是对于整个事情我有点困惑。如何为客户端上的套接字设置IP地址和端口号,是否将服务器保留在端口8001上?如果我不想使用端口8001,我可以通过ADB使用什么命令来执行此操作?

谢谢

2 个答案:

答案 0 :(得分:5)

如果要将计算机上的TCP端口8001转发到手机上的端口8001,则可以使用以下命令:

adb forward tcp:8001 tcp:8001

如果需要,您可以更改手机或设备上的端口。该命令的文档位于:http://developer.android.com/guide/developing/tools/adb.html#forwardports

至于为什么这不起作用 - 你的问题中缺少一些信息。这些只是标准的TCP套接字。 Java版本应该没有任何区别,所以我不明白你的问题。在您的计算机上运行的客户端可以用任何语言编写(Ruby,C ++等)。

答案 1 :(得分:3)

我刚刚完成了一个应用程序的工作,将2个Android手机的摄像头视频传输到我的PC。

首先在你的电脑上运行:

adb devices

你应该得到这样的东西:

xxxyyy1    device
xxxyyy2    device

记下给出的xxxyyy1和xxxyyy2序列号,然后运行以下两个命令:

adb -s xxxyyy1 forward tcp:8001 tcp:8002
adb -s xxxyyy2 forward tcp:8003 tcp:8004

这两个端口转发仅适用于给定的设备编号,因此您的PC现在可以独立地与设备通信。