2012-12-30 52 views
5

私はPC上でプログラムを実行していますが、USBから文字列を入力しています(古いプログラム)PC上で動作しているプログラムにUSBで文字列を入力する必要があるAndroid(4.X) 。 Androidでサンプルコードを使用したとき、次のコードは空のハッシュマップを返します。 PC(32ビットXPと64ビットWindows 7で試してみました)にはAndroidドライバがあります。AndroidからPCへのUSBの読み込み/書き込み

mManager = (UsbManager)getSystemService(Context.USB_SERVICE); 
    HashMap<String, UsbDevice> devices = mManager.getDeviceList(); 

実際の作業コードの例は、USB経由でPCと話すことで役に立ちます。 PCと話すためにAndroid上に必要なドライバなどがあるかどうかを指摘する。

私は正確にあなたがここでやっているものをフォローわからないんだけど、私が正しくあなたを理解していれば(念のため)

答えて

8

をアクセサリーモードとホストモードの両方を試してみました - それは単に「受賞このようにしてください。 UsbManager.getDeviceList()は、USB ホストポートのAndroidデバイスで使用され、一部のUSB デバイスが接続されています。しかし、私が理解する限り、デバイスとして動作するAndroidタブレットは、ホストとして動作します(これは、ドライバのインストールについて書いたものです)。

あなたはAndroidのUSB デバイスと一部のUSB間で通信したい場合はホスト(例えば、あなたのAndroidデバイスが何のUSBホスト機能を持っていないので)、あなたは(私はあなたがthis Android Developers Blog postで始まる示唆)アクセサリーモードを使用する必要があります。しかし、このモードでは、USBホスト側で特別なサポートが必要です(デバイスにはAndroid Open Accessory Protocolと話す必要があります)。アクセサリモードではgetDeviceList()は意味がありません。まず、接続されたアクセサリはUSBデバイスではなく、USBデバイスであり、USBバス上には1つのUSBホストしか存在しないことに注意してください。

アクセサリモードを使用してPCと通信する場合は、AOAP implementationをPC用に試してみるとよいでしょう。あなたが必要とするのは、デバッグの必要性のためにAndroidデバイスと話すことだけであれば、代わりにADB port forwardingとTCP接続を使用することができます。

+0

こんにちは、コードペインター、答えのためのThanx、あなたはそうです、実際にはUsbManager.getAccessoryList()呼び出しですが、Nullを返します。 – Sawant

+0

こんにちは@コードペインター、答えはThanx、私のマニフェストはアクセサリーモードで設定されています。ドキュメントに続いています。そうです、それはUsbManager.getAccessoryList()呼び出しですが、それもNullを返します。私はAndroid 4.0.3で作業していますので、APIレベル15でandroid.hardware.usb.accessoryを使用しています。 USBのデバッグモードを有効にしているcoby kyrosを使ってtcp/ipをデバッグすることはできますが、アクセサリ(つまり)WindowsホストのラップトップはUSBケーブルを介してアンドロイドに接続されています。私は、デバッグモードをオフにして、まだnullを返す、debug'rなしでアプリを実行しようとしました。 – Sawant

+0

Windowsラップトップがアクセサリとして認識されるには、付属のプロトコルの実装が必要です。私の答えのリンクを参照してください。 –

関連する問題