Usb device list что это

Обновлено: 03.07.2024

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

отладка

При использовании USB для подключения к устройству для отладки периферийные устройства USB не могут быть подключены к устройству. Вы можете использовать WIFI для подключения и отладки. Есть несколько настроек -> плагин -> плагины WiFi ADB. Просто выберите тот, который вам подходит.

Или . у меня здесь есть одинЭмулятор Android для подключения USB-устройствНравится нравится!

1. Настройки файла AndroidManifest

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

image

Во-вторых, подключение и использование USB-устройств.

После настройки в файле манифеста мы напрямую вводим ссылку на код Java

Class Описание
UsbManager Получите диспетчер USB для связи с подключенными USB-устройствами.
UsbDevice В абстракции USB-устройств каждое UsbDevice представляет собой USB-устройство.
UsbInterface Определяет набор функций устройства. UsbDevice может содержать один или несколько UsbInterfaces, и каждый интерфейс является независимым.
UsbEndpoint UsbEndpoint - это канал связи интерфейса.
UsbDeviceConnection Соединение устанавливается хостом и устройством, и данные передаются в конечную точку.
UsbRequest Пакет запроса USB.
UsbConstants Определение констант USB

2. Вставьте USB-устройство.

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

3. Загрузите UsbManager

4. Получите список USB-устройств.

5. Приобретите конкретное устройство.

6. Подайте заявку на разрешение USB-устройства.

Для использования USB-устройств системой Android требуются соответствующие разрешения, которые должны быть предоставлены пользователем вручную или применены к вашему приложению при подключении устройства. Перед использованием USB-устройства мы должны сначала подтвердить, было ли предоставлено разрешение устройству в предыдущем разделе. Если нет, мы должны активно подать заявку на разрешение:

Зарегистрироваться на трансляцию:

7. Связь

Связь с USB-устройствами может быть синхронной или асинхронной. В любом случае вы должны создать новый поток для выполнения всех передач данных, чтобы избежать блокировки потока пользовательского интерфейса.

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

В Linux все файлы устройств хранятся в каталоге /dev и должны быть доступны во время загрузки системы.

В этой статье я покажу вам различные способы как в ubuntu посмотреть usb устройства. Большинство команд, упомянутых здесь, должны работать практически на всех дистрибутивах Linux. Например Ubuntu, Debian, Mint.

Просмотр списка имен USB устройств с помощью команды df

Как только USB-устройство подключается в систему Linux, это устройство автоматически монтируется в раздел /media и становится готовым к использованию.

Команда df проверяет подключенные USB устройства

Команда df проверяет подключенные USB устройства

Из приведенного выше вывода следует, что у меня есть 1 USB-накопитель /dev/sdb с 2 разделами /dev/sdb1 и /dev/sdb2

Команда Lsblk используется для перечисления всех блочных устройств в системе Linux. Из списка можно фильтровать USB-устройства с помощью команды grep.

Список команд lsblk USB-устройства

Список команд lsblk USB-устройства

Чтобы получить дополнительную информацию, такую как UUID, производитель и тип файловой системы, используйте команду blkid, как показано на рисунке ниже.

Вывод команды blkid для получение информации об устройствах USB

Вывод команды blkid для получение информации об устройствах USB

Вы можете использовать старую добрую команду fdisk, которая используется для разбиения томов на разделы, чтобы перечислить все разделы в системе Linux, включая USB-накопители.

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

fdisk-command-list USB-устройства

команда fdisk

Список сведений о подключенных USB-устройствах с помощью команды lsusb

Команда lsusb, также известная как команда “List USB”, используется в Linux для перечисления всех USB-устройств, подключенных к системе.

команда lsusb

команда lsusb

На выводе выше отображается идентификатор шины, идентификатор устройства, идентификатор USB, а также поставщик или производитель USB-устройств

Команда lsusb перечисляет подключенные устройства и не предоставляет дополнительной информации о USB-устройствах.

Вы можете использовать команду dmesg и grep, чтобы сузиться до USB-устройств.

команда dmesg

команда dmesg

Кроме того, вы можете передать вывод команды dmesg в less для облегчения прокрутки.

На выходе вы можете найти определенную строку, нажав клавишу прямой косой черты ( / ) на клавиатуре, а затем имя или идентификатор устройства USB-устройства.

В моем случае я ищу дополнительную информацию о USB устройстве под названием SanDisk.

Поиск USB-накопителя

Поиск USB-накопителя

Список USB контроллеров и устройств, использующих USB устройства

Команда usb-devices-это сценарий оболочки, который позволяет вам перечислить все USB-контроллеры и USB-устройства, подключенные к вашему компьютеру. Он печатает детали USB-устройства, такие как производитель, название продукта, серийный номер и многое другое. Вот вывод команды:

Заключение

В этой статье мы продемонстрировали различные способы просмотра USB-устройств, подключенных к системе Linux.

В недавней статье на Geektimes в комментариях возник вопрос о поддержке в ОС Android периферии, подключенной к шине USB. Действительно, большинство вендорского ПО, к примеру, для работы с принтерами и МФУ, поддерживает только подключение по сети. Однако это не означает, что в самой ОС Android нет такой возможности — это означает лишь то, что большинство устройств не имеют полноценного USB хоста, и далеко не все имеют поддержку OTG. По сети же могут работать абсолютно все без исключения.

Большинство устройств на Android при наличии порта OTG поддерживают на уровне системы (ядра Linux или стандартных компонентов Android) следующие классы устройств:

  • Устройства ввода — клавиатуры, мыши, джойстики (HID)
  • Накопители (Mass Storage)
  • Сотовые модемы
  • Сетевые адаптеры
  • Вебкамеры

Подробнее список устройств, поддерживаемых на уровне ядра Linux, можно получить в sysfs:

$ ls /sys/bus/usb/drivers

Если же модуль в принципе доступен в исходниках ядра Linux, но не включен в Android — не стоит рассчитывать на то, что его получится собрать и расставить на все целевые системы.

Однако, начиная с Android 3.1 (API 12), в системе содержатся средства, достаточные для поддержки на уровне приложения любой USB периферии. Данные средства описаны в разделе USB Host руководства по Android API. Здесь же я хочу привести примеры реальной работы с некоторыми видами устройств.

Права доступа

Как и для прочих действий, Android требует, чтобы приложение получило разрешение на доступ к USB периферии. Существует 2 способа получить такое разрешение:

  • Задекларировать список устройств в AndroidManifest
  • Явно показать пользователю диалог “разрешить”

Итак, нам необходимо добавить в манифест следующее:


А в res/xml/device_filter.xml вписать следующее:


Отмечу, что хотя общепринято указывать VID:PID в 16-ричной системе счисления, здесь они должны быть указаны в десятичной. В документации заявляется, что возможно указание только класса, без VID и PID, но у меня это не стало работать.

Принтеры


Класс предельно простой. В рамках этого класса устройство должно поддерживать:

  • Обязательный bulk out endpoind для отправки данных на принтер
  • Опциональный bulk in endpoind для получения статуса принтера
  • 3 управляющих запроса

Код, приведенный ниже, предоставляет функциональность, аналогичную устройству /dev/usb/lp в Linux. Далее нам нужен фильтр, преобразующий исходный документ в пакет данных, понятный конкретной модели принтера. Но это тема иной статьи. Как один из вариантов — можно собрать ghostscript с помощью NDK.

Для работы с устройством нам в первую очередь нужно:

1. Найти устройство. В примере для простоты я ищу первый попавшийся:


2. Получить endpoint’ы:


3. Непосредсвенно открыть устройство:


4. После этого мы можем читать и писать в устройство:


5. По завершении работы — закрыть устройство:

Преобразователи USB-Serial

1. Найти и открыть устройство:


2. Установить параметры последовательного порта:


3. Читать и писать в порт:


4. По завершении работы — закрыть порт:

Резюме

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

Все приведенные примеры я взял из реального проекта, лишь исключил очевидные проверки, оставив только ключевые строки.

Как посмотреть список подключенных USB устройств в Windows 10

Если вам требуется узнать, какие устройства подключены с использованием USB в Windows 10 или предыдущих версиях системы, диспетчер устройств — не самый удобный инструмент для этого, однако существуют сторонние утилиты, которые позволяют быстро получить список всех таких устройств: как подключенных вами внешних, так и «внутренних», использующих тот же интерфейс (например, тачпад, камера, кард-ридер на ноутбуке).

В этом обзоре о двух простых утилитах для получения списка USB устройств вашего компьютера в Windows 10, 8.1 или Windows 7 — обе программы бесплатные и от одного разработчика. Эти же инструменты могут быть полезны для решения некоторых распространенных проблем, например, чтобы выяснить, что вызывает постоянный звук отключения и подключения устройства.

USBDeview

USBDeview не требует установки на компьютер — достаточно распаковать архив в удобное расположение и запустить утилиту.

  1. Сразу после запуска вы увидите список всех обнаруженных в системе USB-устройств (не только подключенных в настоящий момент, но и ранее подключавшихся к компьютеру), при этом активные в настоящий момент будут выделены зелёным цветом.
  2. По двойному клику на любое из устройств вы можете получить подробную информацию о нём — используемый драйвер, дату первого подключения, путь к экземпляру устройства и другие.
  3. Открыв контекстное меню устройства, вы можете выполнить дополнительные действия: например, запретить его подключение в дальнейшем, изменить букву диска, если речь идёт о накопителе, открыть раздел реестра, где заданы параметры этого устройства.

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

USBDriveLog

В отличие от USBDeview в USBDriveLog отображаются только USB-накопители: флешки и внешние жесткие диски или SSD, как подключенные в настоящий момент времени, так и ранее подключавшиеся к этому компьютеру или ноутбуку.

Главное окно USB Drive Log

По двойному нажатию по любому накопителю вы можете получить более подробную информацию, например дату и время подключения и отключения.

Сведения об устройстве в USbDriveLog

Утилита проще, чем предыдущая, но тоже может оказаться полезной. К сожалению, удалить ранее подключавшиеся устройства с её помощью не получится, но для этой цели существуют другие инструменты, описывавшиеся в инструкции Что делать, если компьютер не видит флешку.

Читайте также: