2

USB経由でAndroidフォンをアクセサリ(この場合はMacBook Pro)に接続し、getDeviceList()を使用して接続が認識されていることを確認し、toString()を使用してUsbDeviceオブジェクトの説明を画面に出力しようとしています。次のコード:

//as host
HashMap<String, UsbDevice> deviceList = manager.getDeviceList();
Iterator<UsbDevice> deviceIterator = deviceList.values().iterator();
String s = "";
while(deviceIterator.hasNext()){
   UsbDevice device = deviceIterator.next();
   manager.requestPermission(device, mPermissionIntent);
   Log.d("List Devices", device.toString());

   s += device.toString();
}

コードサンプルはAndroidDeveloperサイトからほぼ直接取得されましたが、複数の電話が周辺機器を認識していないようです。同様に、Androidスマートフォンをアクセサリとして扱ってみましたが、同様の結果が得られています。どんな助けでも大歓迎です。

4

1 に答える 1

2

アクセサリモードについては、Androidデベロッパーガイドから:

USBアクセサリモードを使用すると、ユーザーはAndroid搭載デバイス用に特別に設計されたUSBホストハードウェアに接続できます。アクセサリは、Androidアクセサリ開発キットのドキュメントで概説されているAndroidアクセサリプロトコルに準拠している必要があります。

したがって、AOA(Android Open Accessory)プロトコルを実装しているデバイスのみがUsbAccessory電話からとして表示されます。

ホストモードに関しては、電話自体がそれを許可している必要があります。そうでない場合、実際には機能しません。確かに、箱から出してすぐにホストモードを完全にサポートすることは、ほとんどのAndroid携帯電話/タブレットでは非常にまれなようです。この回答は、携帯電話/タブレットがホストモ​​ードを完全にサポートしていない場合に完全にサポートする方法を示していますが、これにはルートアクセスが必要であることに注意してください。

于 2013-03-14T15:07:11.207 に答える