6

Android USB Host/Accessories 接続を学習しようとしています。AndroidデバイスはUSBホストまたはUSBアクセサリとして機能できると読みました。したがって、2 つのプロジェクトを作成します。1 つは USB ホスト プロジェクト、もう 1 つは USB アクセサリ プロジェクトです。これらのプロジェクトを 2 つの異なる Android デバイスにインストールしました。それらの1つはusbホスト(デバイスA)プロジェクトを持ち、もう1つはusbアクセサリ(デバイスB)プロジェクトを持っています。

私の質問は、USB ホスト プロジェクトでデバイス B に接続できることです。デバイスに関するすべての情報を確認できます。しかし、アクセサリ プロジェクト (デバイス B) では、デバイス A について何も表示されません。

manager.getAccessoryList() は常に null を返します。私の USB アクセサリ プロジェクト コードはこちらです。

UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);

for (UsbAccessory accessory : manager.getAccessoryList()) {
    String list = " DESCRIPTION : " + accessory.getDescription() + " MODEL : " + accessory.getModel() + " MANUFACTURER : " + accessory.getManufacturer() + " SERIAL : " + accessory.getSerial();
    Toast.makeText(this, list, Toast.LENGTH_LONG).show();
}
4

2 に答える 2

1

これを試してください https://github.com/quandoo/android2android-accessory

私もアクセサリリストを0として取得していました。しかし、githubプロジェクトでは、ホストとして機能する1つのAndroidデバイスから、アクセサリである他のデバイスに制御メッセージを最初に送信しました。コントロール メッセージを送信した後、アクセサリ リストが 0 以外の値を取得します。

于 2016-09-09T06:56:57.530 に答える
0

これは、アクセサリをデバイス B に接続すると、USB ホストとして機能するアクセサリが Android Open Accessories Protocol (AOAP) を実装する必要があるためです。USB 経由で接続する を参照してくださいデバイス A (ホスト) は AOAP を実装していないため、デバイス B はハンドシェイク試行を超えてデバイス A との通信を拒否します。

于 2014-02-01T18:34:22.833 に答える