Android ADK - USB OTG (режим хоста)

Я только начинаю заниматься разработкой программного обеспечения для Android и буду разрабатывать вспомогательное оборудование для взаимодействия с устройством Android. Похоже, что существуют некоторые ограничения на то, какие режимы USB можно использовать на устройстве в зависимости от прошивки. На основе документации по USB с сайта developer.android.com. Режим хоста USB поддерживается только в микропрограммах версии 3.1 и выше. Однако похоже, что Samsung Galaxy 2 поддерживает OTG (режим хоста), по крайней мере, изначально, как показано в этом видео на YouTube: демонстрация SGS2 OTG. Крайне важно, чтобы телефон был хостом, чтобы подавать небольшое количество энергии на мое внешнее оборудование.

  1. Может ли кто-нибудь проверить, есть ли какой-либо доступ API к режиму USB-хоста на мобильных телефонах Android? Причина, по которой я сомневаюсь в приведенной выше цитате разработчика Android, заключается в том, что на телефоне SGS2 явно демонстрируется функциональность режима хоста.

  2. Если я не могу получить доступ к каким-либо функциям API-интерфейса USB-хоста, есть ли способ разработать аппаратное обеспечение периферийного USB-устройства, которое может взаимодействовать с телефоном? Похоже, я мог бы спроектировать оборудование, использующее классы MSD, которые, по-видимому, изначально поддерживаются в приведенной выше демонстрации?

  3. Если в настоящее время нет доступа к USB-хосту через API, есть ли планы добавить его в аппаратное обеспечение мобильных телефонов в будущем?


person fragment    schedule 03.08.2011    source источник


Ответы (2)


Довольно широкий спектр аппаратного обеспечения устройств поддерживает USB-хост (иногда только частично, без подачи питания), но только с альтернативной прошивкой или расширениями, специфичными для поставщика, - пока вы не дойдете до версий API, где это официальная часть Android.

Многие видео и веб-страницы, которые вы видите, — это люди, демонстрирующие свои собственные модификации прошивки — что может быть путем, но таким, который ограничивает ваш рынок пользователями, желающими модифицировать, списком устройств, которые вы сертифицируете как совместимые, или специальными устройствами Android, которые вы продавать в комплекте с вашим аксессуаром.

person Chris Stratton    schedule 03.08.2011
comment
Знаете ли вы, есть ли какие-либо планы официальной поддержки API для хоста на мобильных телефонах? Я не видел никаких упоминаний и подозреваю, что вскоре будет поддержка, но это все предположения, основанные на том, что кажется разумным. Google на данный момент ограничил режим хоста планшетами, может быть, по какой-то причине исключительно? - person fragment; 03.08.2011
comment
Я думаю, что это было ограничено как из-за того, что до этого еще не дошло, так и из-за того, что многие телефоны не могут электрически подавать питание на шину, поэтому в любом случае они не могут быть хостами, соответствующими спецификации. Надеюсь, что в следующем обновленном релизе они сделают его официальной опцией для телефонов, которые поставщики могли бы поддерживать, если захотят, но я сомневаюсь, что это потребуется. - person Chris Stratton; 03.08.2011
comment
Я полагаю, что можно безопасно начать разработку оборудования, которое реализует класс аксессуаров и, надеюсь, сможет перейти на периферийное устройство (без подачи питания) позже, когда Android выпустит больше поддержки для хост-API. Спасибо за информацию и любые другие предложения, безусловно, приветствуются! - person fragment; 03.08.2011
comment
Если ваше внешнее устройство поддерживает хост, вы можете поддерживать даже устаревшие устройства, использующие протокол adb, где протокол adk недоступен. Еще одна идея, если вам нужно совсем немного энергии и связи, — это использовать разъем для наушников. - person Chris Stratton; 03.08.2011
comment
Разъем для наушников - интересно. Можете ли вы уточнить? Похоже, что разъем может быть внутренне мультиплексирован, чтобы обеспечить альтернативную функциональность? Данные - мощность? Любые ссылки? - person fragment; 03.08.2011
comment
Я только что нашел интересную статью в блоге разработчиков Android. Это ускользает от того, куда все может пойти и почему сейчас, по крайней мере, так оно и есть. android-developers.blogspot.com/2011/ 05/ - person fragment; 03.08.2011
comment
Согласующий трансформатор, мостовой выпрямитель и фильтрующий колпачок должны обеспечить вам незначительное количество мощности от громкого аудиосигнала. При тщательном проектировании вы, вероятно, могли бы что-то сделать с микро и отвечать тонами на микрофонном входе. По сути, как пассивная метка RFID, только со звуком. Там, вероятно, также есть источник смещения микрофона. - person Chris Stratton; 04.08.2011
comment
Отличная идея. Думаю, я сделаю из этого личный проект! - person fragment; 04.08.2011

Можно разработать приложения для SGS2, которые могут обмениваться данными с пользовательскими USB-устройствами.

Во-первых, ядро ​​SGS2 реализует белый список, который позволяет подключать только определенные типы устройств (HID, запоминающие устройства, принтеры, PTP), что означает, что любое специальное USB-оборудование, зависящее от поставщика, не будет разрешено. Если вы хотите собрать собственное ядро ​​или можете убедить разработчиков ядра внести изменения, можно соответствующим образом изменить белый список.

Во-вторых, хост-классы USB в Android SDK доступны только в версии 3.1, но SGS2 работает под управлением версии 2.3.x, однако это позволит вам выполнять сборку с соответствующим уровнем API и по-прежнему ориентироваться на SGS2.

Я писал о том, как изменить ядро ​​и начать разработку приложения на моем блог.

person Dan    schedule 02.09.2011