web-dev-qa-db-ja.com

Androidアプリ、USBポートに接続されたデバイスとの通信

私はAndroidアプリ(おそらく付随する物理デバイス)について)を考えており、これが実現可能なものかどうかを把握しようとしています。

1)AndroidをPCに接続します。PCにインストールされたアプリが携帯電話で実行中のアプリと通信できるようになりますか?非常に単純なデータが必要です。交換は、一方向でも可能です(携帯電話からPCのリスニングアプリにデータをプッシュするだけで、携帯電話が必要なときはいつでも、PCから電話にデータを送信する必要はありません)。

プラグを差し込むと、電話には4つのオプション(充電、ディスクドライブ、HTC同期、テザリング)が表示されます。

2)PCのアプリが他の方法で電話のアプリと会話することは可能ですか? (Wi-Fi、Bluetoothなど)。どちらの当事者も相手のIPを持っていないので、wi-fiを使用していないと推測しています(そして、IPを常に手動で入力する必要がなく、これが機能することを望んでいます)。

3)電話機の下部にある小さなUSBポートに接続するデバイスを作成する場合(これは何でもできる魔法のデバイスだとしましょう。実行可能な限り、これらの詳細についてはあまり気にしません)。 Androidそのデバイスへのアプリトークを使用できますか?

4)私が作った「デバイス」やPCのアプリに電話をかけるその他のアイデアは大歓迎です。 「ウェブを経由する」という選択肢もあります(私が仲介人として所有する中央サーバーが必要になると思いますが)。ただし、通信が2つのデバイス間で直接行われる場合は、この方が望ましいです。

53
Daniel Magliola

この質問が尋ねられて以来、世界は変化しており、その答えは Android Open Accessory Development Kit です。既存のUSBデバイスの問題は解決しませんが、AndroidデバイスのUSB接続を使用できる新しいデバイスを作成できます。

18
James Moore

AndroidデバイスとPC間の通信はもう1つの方法で可能です。

USB経由のADB接続経由。

  1. ポート転送。
  2. サーバーソケットJavaプログラム。
  3. クライアントソケットAndroid App。

このアプリを通じて、Java PC上で実行されているプログラムと通信できます。

http://www.anothem.net/archives/2010/10/15/Android-usb-connection-to-pc/

9
Noby

編集:この回答は、Android USBホストおよびアクセサリAPIと、作成後にリリースされた多くのデバイスで見つかったサポートが利用可能になる前のことに注意してください。

電話でusbデバッグをオンにし、pcのSDK(オープンソース)adbツールから派生したものがある場合、通信できます。 PCは通信を開始する必要がありますが、セッション内では、ほとんど双方向またはデバイスからPCへの通信が可能です。 adbシェルとポート転送については、developer.Android.comをご覧ください。ルートは必要ありません。

人々は、bluetoothを使用してarduino組み込みコントローラーと通信しています。

ルートを使用して、電話をusbホストとして機能させましたが、usbが占有されているため、wifiを使用してデバッグシェルを取得する必要があったため、苦労しました。

一部の電話機には、extusbコネクタまたはオーディオラインに低電圧シリアルポートがありますが、これを使用するにはルートとレベルシフターが必要です。

私が考えていたもう1つのアイデアは、ヘッドセットジャックでソフトウェアモデムを実行することで、Androidとiphoneの両方で日本の誰かによって行われたようです。これはルートを必要としません。

4
Chris Stratton

Usb/wlanを介した通信については、このプロジェクトをご覧ください。 http://code.google.com/p/Android-notifier/

3
WarrenFaith