7

USBから文字列入力を取り込むPC上のプログラム(古いプログラム)があります。PCで実行されているプログラムにUSBで文字列入力を提供する必要があるAndroid(4.X)タブレットがあります。Androidでサンプルコードを使用した場合、次のコードは空のハッシュマップを提供します。PC(32ビットXPおよび64ビットWindows 7で試用)にはAndroidドライバーが搭載されています。

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

USB経由でPCと通信する実際のコード例は、役に立ちます。また、AndroidでPCと通信するためにドライバーなどが必要かどうかも指摘します。

アクセサリモードとホストモードの両方を試しました(念のため)

4

1 に答える 1

10

私はあなたがここでしていることを正確にフォローしているのかわかりませんが、あなたを正しく理解していれば、このようには機能しません。これは、一部のUSBデバイスが接続されているUSBホストポートUsbManager.getDeviceList()を備えたAndroidデバイスで使用することを目的としています。しかし、私が理解している限りでは、デバイスとして機能するAndroidタブレットを、ホストとして機能するPCに接続します(ドライバーのインストールについて書いたからです)。

Android USBデバイスと一部のUSBホスト間で通信する場合(たとえば、AndroidデバイスにUSBホスト機能がないため)、アクセサリモードを使用する必要があります(このAndroid Developersブログの投稿から始めることをお勧めします)。ただし、このモードでは、USBホスト側で特別なサポートが必要です(Android Open Accessory Protocolを使用してデバイスと通信する必要があります)。アクセサリモードでは意味がないことに注意してください。getDeviceList()まず、接続されているアクセサリはUSBデバイスではなく、USBホストであり、USBバス上に存在できるUSBホストは1つだけです。

アクセサリモードを使用してPCと通信する場合は、このPC用のAOAP実装を試してみてください。デバッグの必要性のためにAndroidデバイスと通信するだけでよい場合は、代わりにADBポート転送とTCP接続を使用することをお勧めします。

于 2012-12-31T09:43:04.603 に答える