Класс UsbInterface представляет устройство USB, подключенное к системе Android, работающей в режиме хоста. Каждое устройство содержит один или большее количество интерфейсов (доступ к ним осуществляется через класс UsbInterface), каждый из интерфейсов в свою очередь содержит некое количество конечных точек (доступ к ним осуществляется через класс UsbEndpoint).
При доступе к устройствам USB обычно используется следующая цепочка использования классов (UsbInterface является промежуточной точкой взаимодействия с устройствами USB):
UsbManager -> UsbDevice -> UsbInterface -> UsbEndpoint -> UsbDeviceConnection
[Обзор класса UsbInterface]
Класс UsbInterface представляет интерфейс устройства USB (которое в свою очередь представлено классом UsbDevice). Устройство может один или несколько интерфейсов, каждый из которых предоставляет определенную часть функционала устройства USB, отличающуюся от других интерфейсов. Интерфейс в свою очередь может иметь одну или несколько конечных точек UsbEndpoint, которые олицетворяют каналы взаимодействия (обмена данными) между хостом USB (в данном случае это система Android) и устройством USB. Информация об интерфейсе и конечных точках компонуется и создается на основе данных, полученных из стандартных дескрипторов устройства USB.
Класс UsbInterface находится в пакете android.hardware.usb.UsbInterface, расширяет (extends) объект Object, и реализует (implements) объект Parcelable. Класс UsbInterface (как и поддержка режима хоста USB) была добавлена в Android начиная с API Level 12. Общую информацию по поддержке режимов Host и Accessory см. в [2].
[Поля (Fields)]
[Общедоступные методы (Public Methods)]
public int describeContents ()
Описывает некие специальные объекты, содержащиеся в этом упорядоченном представлении Parcelable.
Возвращает
- битовую маску, показывающую набор специальных объектов, упорядоченных через Parcelable.
public UsbEndpoint getEndpoint (int index)
Возвращает конечную точку UsbEndpoint по указанному индексу. Интерфейсу устройства USB может принадлежать одна или несколько конечных точек.
public int getEndpointCount ()
Возвращает количество конечных точек UsbEndpoint в этом интерфейсе USB. Конечная точка по умолчанию (она же endpoint 0, она же default control endpoint) при этом не учитывается (она относится не к интерфейсу, а ко всему устройству USB в целом).
Возвращает
- количество конечных точек в интерфейсе
public int getId ()
Возвращает поле интерфейса устройства ID, прочитанное из дескрипторов. Это целое число, уникально идентифицирующее интерфейс в пределах устройства USB.
public int getInterfaceClass ()
Возвращает поле класса интерфейса, прочитанное из дескрипторов. Некоторые полезные константы, касающиеся классов USB, могут содержаться в UsbConstants .
public int getInterfaceProtocol ()
Возвращает поле протокола интерфейсов, прочитанное из дескрипторов.
public int getInterfaceSubclass ()
Возвращает поле подкласса интерфейса, прочитанное из дескрипторов.
public String toString ()
Возвращает строку с кратким, удобным для чтения человеком описанием этого объекта. Рекомендуется для подклассов перезадавать (override) этот метод и предоставлять реализацию, которая учитывает тип и данные объекта. Реализация по умолчанию эквивалентна следующему выражению:
getClass().getName()+'@'+Integer.toHexString(hashCode())
См. документ Writing a useful toString method, если хотите создать свою собственную реализацию метода toString .
Возвращает
- печатаемое текстовое представление этого объекта.
public void writeToParcel (Parcel parcel, int flags)
Сводит этот объект в Parcel.
Параметры
parcel |
Parcel, в который объект должен быть записан. |
flags |
Дополнительные флаги, сигнализирующие о том, как этот объект должен быть записан. Может быть равен либо 0, либо PARCELABLE_WRITE_RETURN_VALUE . |
[Ссылки]
1. UsbInterface site:developer.android.com. 2. Android как USB хост и как USB устройство. |