2010-12-01 10 views
2

StackOverflowには、Android搭載の携帯電話を使ってUSBデバイスを制御する方法についていくつかの記事がありますが、これは不可能です(AndroidはUSBデバイスです)。私のAndroidをUSBデバイスとして使用する

しかし、USBデバイスとして他のコンピュータ(Linuxホスト)と通信するようにアプリケーションを設定することは、とてもうれしいです。 (本当に高価なマウスのように...)

誰かが、USB接続を使用してホストコンピュータとデータを交換するためにAndroidアプリ/携帯電話を設定する方法についての情報を持っていますか?明らかに、それは既にあるレベルで動作しています。EclipseとAndroid SDK /デバッガがどのように動作するのかはわかりますが、アプリケーションでこれを行う方法を探しています。

(私の現在の携帯電話は、ところで、ドロイド信じられないほどである。)

おかげで、 R.

+0

あなたはフラッシュドライブのような意味ですか?または、作成したアプリケーション内にあることを意味しますか? – shady

+0

いいえ、電話機とホストコンピュータ(それぞれカスタムアプリケーションを実行していますが、他のUSBハードウェアはありません)。私は、ホストコンピュータ上のアプリとAndroid上のアプリとの間でデータを交換したいと思います。現在、私はTCPとUDPを使ってこれを行いますが、プロジェクトのパラメータが大きくなり、別の方法を探す必要があります。 – Rich

+0

何か別のものでよりうまくいくと思うネットワークプロトコルには何が問題なのですか?他のどのタイプのシステム間通信モデルを好むでしょうか?または、プロトコルではなく、Wi-Fiや3Gを輸送手段として使い、USBのようなローカルなものを使いたいという問題ですか?その場合は、おそらくネットワークプロトコルを以下のように保ちます。 –

答えて

2

は、基本的にはどちらか、SDKからUSBデバイスドライバとADBのツールスイートをインストールする必要があるだろうそれらの機能をリバースエンジニアリングし、それを何か他のものに組み込むことができます。

次に、電話機でUSBデバッグを有効にします。

次に、PC上のアプリケーションが電話機のネットワークソケットリスナーに接続できるように、adbポートフォワードのような処理を行うことができます。接続は他の方向に行うことはできませんが、一度接続すると双方向になります。

お使いのAndroidのバージョンがUSB経由のテザリングをサポートしている場合は、それを利用して暗黙的にPCと電話機の間にネットワークを作成することもできます。ちょうど何も電話のモバイルネットワークを介してうっかりたくさんのデータをポンピングし始めることを確認してください!

(多くのアンドロイド携帯は実際には実験的にUSBホストとして機能することができますが、新しいドライバをカーネルにコンパイルして新しいバージョンをインストールし、電話機が使用できないときにUSB電源を供給するためのケーブルを作ります。デバッグに苦労するUSB​​チャンネル上のADBを失う)

+0

これは参考になりますが、明確にしたいあなたは非常に一般的な、フルボディレスポンスを投稿しているので...私はリバースエンジニアリングが最後の手段だと思っています。私は自分の携帯電話のOSについて心配したくありませんので、1)Android私のホストコンピュータ上のSDK(USBドライバとADBを使用)と2)USB接続を介してネットワークに接続できるADBトリックを学ぶ...真剣に、それは何ですか?ワオ。悲しいことに、私の携帯電話のバージョンの "テザリング"は、Wi-Fiを携帯ネットワークにブリッジするだけですが、少なくとも私はモバイルネットワークを持っていないので、オフにする心配はありません... – Rich

+1

はい、sdkをインストールし、adbを有効にして、adbポート転送でドキュメントを読んでください。実際のsdkを使用できないようなホストが必要な場合は、adbクライアントをリバースエンジニアリングする必要があります。たとえば、現在のadbをコンパイルできない非x86プロセッサの小型組み込みシステムコード。 –

+0

悲しいことに、その最後の文はちょうど私たちがお尻を蹴るものかもしれません...ああ、私たちは何ができるかを見ていきます。 – Rich

関連する問題