2011-06-07 49 views
5

我正在一个项目中自动执行一些任务(例如播放歌曲,播放视频,接收蓝牙数据等)从PC上的Android手机。从电脑发送命令到Android手机 - 通过物理连接(USB,串行等)

基本上,PC会向手机发送通知,手机上的应用程序或其他应用程序会处理通知程序并执行“某事”。这真的是相反的: http://code.google.com/p/android-notifier/

我已经看到了一些例子,说明如何将命令发送到通过网络连接一个Android应用程序监听或服务,但在这种情况下,我宁愿传输是通过物理连接。

USB 理想情况下,我想通过USB端口进行连接。但是我在网上看到一些帖子提示SDK本身不支持这一点。 (Android apps, communicating with a device plugged in the USB port)。

的Serial over USB 我也看到了一些网站,展示如何使用breakoutbox进行双向串行通信,但仅与G1。这是可能的新手机吗?

电话 我很开放真的任何新手机。我目前正在观看Galaxy S,因为它通过耳机插孔将视频输出。如果需要的话,我很乐意生根。

+0

我想出如何利用亚行和外壳...调用命令行的意图行动 http://learnandroid.blogspot.com /2008/01/run-android-application-from-command.html 现在我需要弄清楚如何获取数据... – 2011-06-08 23:09:44

+0

您可以将数据写入文件,然后通过'adb拉' – werewindle 2011-11-24 17:26:30

+0

我必须轮询,还是阻塞/同步呼叫? – 2011-12-09 21:06:32

回答

0

你可以做的是手机充当服务器,然后使用adb转发端口[1]。

在这种情况下,PC应用程序将连接到localhost这将通过USB电缆重定向到手机上的应用程序。

但是,如果你走这条路,你还不如干脆直接连接到电话的IP(不包括ADB端口转发)...

[1] http://developer.android.com/guide/developing/tools/adb.html#forwardports

+0

亚行不建立网络,所以不,你不能直接连接 - 如果亚行是运输工具,你必须使用端口转发。您可能会混淆仿真器主机网络别名。 – 2014-07-29 14:55:32

+0

@ChrisStratton通过“直接连接到手机的IP”我打算根本不使用ADB。所以我不确定你的意思:) – BoD 2014-07-29 15:27:53

+0

你是如何建议连接它呢?无线上网?你几乎肯定无法通过移动提供商建立入站连接。 – 2014-07-29 15:32:11

2

Implement a HTTP server in your app,然后把你的手机处于USB Tether模式。这将在您的手机和PC之间创建一个本地网络。然后,您应该能够发送HTTP请求或使用手机的IP创建websockets。

编辑:我测试了它,和它的作品,看到here