2013-06-10 3 views
5

Я пытаюсь изучить соединение с USB-хостом/аксессуарами для Android. Я читал, что устройства для Android могут выступать в качестве хоста usb или usb. Поэтому я создаю два проекта, один из которых - проект хоста usb, другой проект аксессуаров для usb. Я установил эти проекты на два разных устройства для Android. Один из них имеет проект usb host (Device A), другой - проект usb-аксессуар (устройство B).Android-хост-режим и режим аксессуаров

Мой вопрос в том, что я могу подключиться к проекту хоста 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(); 
} 
+0

У меня такая же проблема ... –

ответ

0

Это потому, что при подключении аксессуара к устройству B, аксессуар, который действует как США B хост должен реализовать Android Open Accessory Protocol (AOAP). См. Connecting over USB. Поскольку устройство A (хост) не реализует AOAP, устройство B отказывается связываться с устройством A за пределами рукопожатия.

+0

У вас означает, что его можно связывать между двумя устройствами Android по AOAP? Мое понимание - связь AOAP возможна между устройством Android, поддерживающим AOAP, и USB-аксессуаром, таким как arduino, который поддерживает AOAP. Не могли бы вы прояснить? – Kozlov

+0

@ Kozlov Я имел в виду, что устройство Android, работающее в режиме USB Accessory, будет связываться только с хостом USB, который реализует AOAP. – Luis

0

Попробуйте https://github.com/quandoo/android2android-accessory

Даже я получаю аксессуар список как 0. Но в проекте GitHub, они сначала послали некоторое управляющее сообщение от одного андроида устройства выступает в качестве хоста на другое устройство, которое является аксессуаром. После отправки управляющего сообщения я получаю список аксессуаров ненулевым.

Смежные вопросы