2011-06-07 48 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

相關問題