Класс UsbDevice Печать
Добавил(а) microsin   

Класс UsbDevice представляет устройство USB, подключенное к системе Android, работающей в режиме хоста. Каждое устройство содержит один или большее количество интерфейсов (доступ к ним осуществляется через класс UsbInterface), каждый из интерфейсов в свою очередь содержит некое количество конечных точек (доступ к ним осуществляется через класс UsbEndpoint). Конечные точки олицетворяют каналы передачи данных через шину USB.

При доступе к устройствам USB обычно используется следующая цепочка использования классов (UsbDevice является промежуточной точкой взаимодействия с устройствами USB):

UsbManager -> UsbDevice -> UsbInterface -> UsbEndpoint -> UsbDeviceConnection

[Обзор класса UsbDevice]

Класс UsbDevice содержит информацию (связанную с объектами UsbInterface и UsbEndpoint), которая описывает возможности устройства USB. В конечном счете эта информация компонуется и создается на основе данных, полученных из стандартных дескрипторов устройства USB.

Чтобы обмениваться данными с устройством, Вы открываете UsbDeviceConnection к устройству, и используете UsbRequest для отправки или приема данных через конечную точку. Метод controlTransfer(int, int, int, int, byte[], int, int) при этом используется для запросов к нулевой конечной точке (передачи данных через неё в обе стороны). Это специальная конечная точка управления (default control endpoint), которая имеется в наличии на каждом устройстве USB.

Класс UsbDevice находится в пакете android.hardware.usb.UsbDevice, расширяет (extends) объект Object, и реализует (implements) объект Parcelable. Класс UsbDevice (как и поддержка режима хоста USB) была добавлена в Android начиная с API Level 12. Общую информацию по поддержке режимов Host и Accessory см. в [2].

Унаследованные константы (Inherited Constants)
Из интерфейса android.os.Parcelable
int CONTENTS_FILE_DESCRIPTOR Битовые маски для использования с describeContents(): каждый бит представляет вид объекта, который, как предполагается, при упорядочении имеет потенциальное особое значение.
int PARCELABLE_WRITE_RETURN_VALUE Флаг для использования с writeToParcel(Parcel, int): записанный объект является возвращаемым значением, которое является результатом функции наподобие "Parcelable someFunction()", "void someFunction(out Parcelable)", или "void someFunction(inout Parcelable)".
Поля (Fields)
public static final Creator<UsbDevice> CREATOR
Общедоступные методы (Public Methods)
int describeContents()
Описывает некие специальные объекты, содержащиеся в этом упорядоченном представлении Parcelable.
boolean equals(Objecto)
Сравнивает этот экземпляр с указанным объектом, и возвратит true, если он эквивалентен.
int getDeviceClass()
Возвращает поле класса устройства.
static int getDeviceId(String name)
int getDeviceId()
Возвращает уникальный целочисленный ID для этого устройства.
String getDeviceName()
Возвращает имя устройства.
static String getDeviceName(int id)
int getDeviceProtocol()
Возвращает поле протокола устройства.
int getDeviceSubclass()
Возвращает поле подкласса устройства.
UsbInterface getInterface(int index)
Возвращает UsbInterface по указанному индексу.
int getInterfaceCount()
Возвращает количество интерфейсов UsbInterface, содержащихся в этом устройстве.
int getProductId()
Возвращает идентификатор продукта (product ID, PID) для устройства.
int getVendorId()
Возвращает идентификатор производителя (vendor ID, VID) для устройства.
int hashCode()
Возвращает целочисленный хэшкод для этого объекта.
String toString()
Возвращает строку с кратким, удобным для чтения человеком описанием этого объекта.
void writeToParcel(Parcelparcel, int flags)
Сводит этот объект к Parcel.
Унаследованные методы (Inherited Methods)
Из класса java.lang.Object
Из интерфейса android.os.Parcelable
abstract int describeContents()
Описывает некие специальные объекты, представленные в упорядоченном содержимом этого Parcelable.
abstract void writeToParcel(Parceldest, int flags)
Сводит этот объект к Parcel.

[Поля]

public static final Creator<UsbDevice> CREATOR

[Общедоступные методы (Public Methods)]

public int describeContents ()

Описывает некие специальные объекты, содержащиеся в этом упорядоченном представлении Parcelable.

Возвращает
  • битовую маску, показывающую набор специальных объектов, упорядоченных через Parcelable.

public boolean equals (Object o)

Сравнивает этот экземпляр с указанным объектом и показывает, равны они или нет. Чтобы быть эквивалентным, o должен представлять тот же самый объект, как и этот экземпляр, с использованием сравнения, специфичного для класса. Общее правило - сравнение должно быть рефлексивным, симметричным и транзитивным. Кроме того, любая ссылка на объект, кроме null, никогда не равна null.

Реализация по умолчанию возвращает true только если this == o. См. руководство Writing a correct equals method, если хотите реализовать свой собственный метод сравнения.

Общее правило для методов equals и hashCode() состоит в том, что если equals возвратит true для любых двух объектов, то hashCode() должен вернуть одинаковое значение для этих двух объектов. Это означает, что подклассы от Object обычно перезадают либо оба этих метода, либо ни один из них.

Параметры
o объект, который сравнивается с этим экземпляром.
Возвращает
  • true, если указанный объект эквивалентен с этим объектом, иначе false.

public int getDeviceClass ()

Возвращает поле класса устройства из дескрипторов. Некоторые полезные константы для классов устройства USB можно найти в UsbConstants.

Возвращает
  • класс устройства

public static int getDeviceId (String name)

 

public int getDeviceId ()

Возвращает уникальный целочисленный идентификатор ID для этого устройства. Это удобно для клиентов, которым нужно использовать некое уникальное представление для устройства, отличающееся от имени устройства. Значение идентификаторов ID не постоянное при переподключениях устройств USB.

Возвращает
  • идентификатор устройства (device ID)

public String getDeviceName ()

Возвращает имя устройства. В стандартной реализации это путь к устройству в файловой системе usbfs. Пример такого имени: /dev/bus/usb/002/002.

Возвращает
  • имя устройства

public static String getDeviceName (int id)

То же самое, только возвращает имя устройства по его идентификатору.

public int getDeviceProtocol ()

Возвращает поле протокола устройства (из дескрипторов устройства USB).

Возвращает
  • протокол устройства

public int getDeviceSubclass ()

Возвращает поле подкласса устройства (из дескрипторов устройства USB).

Возвращает
  • подкласс устройства

public UsbInterface getInterface (int index)

Возвращает интерфейс устройства UsbInterface по указанному индексу (номеру). Интерфейсов в устройстве USB может быть несколько, хотя обычно интерфейс только один.

Возвращает
  • интерфейс

public int getInterfaceCount ()

Возвращает количество интерфейсов UsbInterface в этом устройстве. Интерфейсов в устройстве USB может быть несколько, хотя обычно интерфейс только один.

Возвращает
  • количество интерфейсов

public int getProductId ()

Возвращает product ID (PID) для этого устройства. Идентификатор продукта PID вместе с идентификатором VID обычно используют для программного поиска нужного устройства USB, т. е. того устройства USB, с которым программа должна работать.

Возвращает
  • идентификатор продукта устройства USB (product ID, PID)

public int getVendorId ()

Возвращает vendor ID для устройства. Идентификатор производителя VID вместе с идентификатором PID обычно используют для программного поиска нужного устройства USB, т. е. того устройства USB, с которым программа должна работать.

Возвращает
  • идентификатор производителя устройства USB (vendor ID, VID)

public int hashCode ()

Возвращает целочисленный хэшкод для этого объекта. По правилам любые два объекта, для которых метод equals(Object) возвращает true, должны возвращать одинаковое значение кода хэша из метода hashCode(). Это означает, что в подклассах от Object обычно либо перезадаются (override) оба этих метода (), либо ни один из них.

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

См. руководство Writing a correct hashCode method, если Вы хотите реализовать свой собственный метод расчета хэша hashCode.

Возвращает

хэшкод (контрольную сумму) объекта.

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. UsbDevice site:developer.android.com.
2. Android как USB хост и как USB устройство.