Список подключенных устройств андроид

Список подключенных устройств андроид

Общие принципы получения доступа к устройствам USB на платформе Android описаны в документации API [1]. В этой статье будет на практическом примере показано, как программно получить список подключенных устройств USB.

Для того, чтобы можно было физически подключить к Android устройство USB (флешку, клавиатуру, мышку, или любое другое устройство USB HID или USB CDC) нужно иметь как минимум 2 вещи:

1. Современное устройство Android, у которого операционная система не старее Android 3.1.x (API Level 12 или выше). Более старые системы не поддерживают режим хоста USB, т. е. они принципиально не способны опознавать USB-устройства.
2. Переходник «Android OTG micro usb cable».

На фото показан внешний вид такого переходника, который на ebay, dealextreme или aliexpress продается по цене порядка 2 долларов, или даже дешевле. Конечно, его можно купить также на рынке или в магазине, но несколько дороже. Дешевизна переходника легко объяснима — у него внутри ничего, кроме проводов, нет [2]. На переходнике с одной стороны имеется штеккер microUSB, который втыкается в Android, а на другой стороне стандартное гнездо USB type A, куда можно воткнуть любой шнур USB.

Примеры программ Android, описанных в этой статье, можно скачать в архиве [3]. Программы были написаны в среде Eclipse, и испытывались на смартфоне Samsung Galaxy Note GT-N7000, версия Android 4.1.2 (API Level 16).

[Как программно узнать, какие USB-устройства подключены к устройству Android]

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

1. Создайте в Eclipse проект приложения Android при помощи стандартного мастера. На этом шаге выберите минимальную версию целевого SDK API 12. Target SDK и Compile With можете выставить по максимуму, на самую последнюю поддерживаемую версию Android. Так же задайте, как обычно, имя приложения, имя проекта и имя пакета.

2. Бросьте на форму приложения кнопку и виджет TextView. Кнопку будем использовать для запуска опроса устройств, а TextView для вывода информации. Создайте для них глобальные переменные в теле класса, и в обработчике onCreate сделайте привязку этих переменных к соответствующим ресурсам. Добавьте также глобальную переменную типа UsbManager:

Для вывода в TextView создайте процедуру clog, принимающую строку. Для упрощения код процедуры не привожу, подробнее, как делать вывод в текстовый лог, можете посмотреть в FAQ [4], или загрузите готовый код в виде проекта Eclipse [3].

3. Добавьте в манифест приложения секцию uses-feature android:name=»android.hardware.usb.host». Вот пример файла манифеста:

4. Создайте обработчик клика на кнопке:

Программа готова. Вот пример её вывода, когда ничего не подключено, когда подключена флешка и когда подключено устройство USB HID (макетная плата AVR-USB-MEGA16).

[Ссылки]

1. Android как хост USB.
2. Как сделать для смартфона Android кабель microUSB OTG.
3. 140419android-USB-devices-access.zip — проекты Eclipse с примерами управления макетной платой AVR-USB-MEGA16 из Android, проект устройства USB HID с исходными кодами и готовыми прошивками.
4. Eclipse, Android Studio: FAQ, устранение ошибок.

Комментарии

А вы бы не могли бы сами выслать эту программу мне на мою почту? А то я весь мозг сломал. Ни хрена ничего не понимаю. Если чего, то вот моя почта: .

Читайте также:  Планшеты андроид n8000 китайские

microsin: скачайте пожалуйста архив по ссылке [3].

Сделал проект в Android Studio по этому примеру, работает, однако не показывает информацию о некоторых классах устройств: не видит мышь (HID) и не видит usb-hub. Если подключить флешку — все ок.
С фильтрацией игрался, в итоге оставил в таком виде: . Может у кого есть мысли, в чем проблема?

microsin: скорее всего проблема с текущей версией прошивки Android. Хост USB на нем поддерживает только класс USB MSD. Установите с Google Play программу проверки функций хоста Android (прогуглите Android USB host test), и проверьте на ней работу разных устройств USB.

Источник

Работа с устройствами USB в Android

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

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

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

Несколько реже:

  • Сотовые модемы
  • Сетевые адаптеры
  • Вебкамеры

Хабы поддерживаются при наличии полноценных хост-портов, но не поддерживаются на портах OTG.

Подробнее список устройств, поддерживаемых на уровне ядра 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, но у меня это не стало работать.

Принтеры

На примере принтера я покажу, как непосредственно использовать API android.hardware.usb. На уровне передачи данных все принтеры поддерживают стандартый класс USB устройств:

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

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

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

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

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

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

Читайте также:  Android для skoda octavia

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

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

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

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

В отличие от притеров, преобразователи USB-Serial гораздо менее стандартизированы. Существует несколько распространенных чипов, для которых существенно отличается установка параметров последовательного порта — битрейта, чётности и проч. К счастью, есть библиотека github.com/mik3y/usb-serial-for-android, поддерживающая практически все существующие чипы. Библиотека полностью скрывает USB API, сводя все необходимые действия к минимуму вызовов с минимумом параметров.

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

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

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

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

Резюме

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

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

Источник

Как найти устройства, подключенные к вашему Wi-Fi, с помощью смартфона

Допустим; Интернет стал частью нашей жизни. В наши дни мы не можем выжить без подключения к Интернету. Увеличение использования Интернета на smartphones также привело к появлению сетей Wi-Fi. В наши дни вы найдете сети Wi-Fi повсюду, например, в офисах, кинотеатрах, торговых центрах и т. Д.

Даже у всех нас есть подключение к Wi-Fi дома и на рабочем месте. Если у вас есть личный Wi-Fi, то мы уверены, что вы имели дело с медленной скоростью интернета. Внезапное снижение скорости интернета указывает на то, что кто-то может использовать вашу сеть Wi-Fi. Большинство современных маршрутизаторов позволяют пользователям проверять наличие подключенных устройств. Однако, если вы не знаете, как использовать панель администратора маршрутизатора, вы можете положиться на приложения.

Как найти устройства, подключенные к вашему Wi-Fi, с помощью смартфона

В Play Store было довольно много приложений для Android, которые позволяют находить устройства, подключенные к сети Wi-Fi. В этой статье мы поделимся несколькими лучшими методами, которые помогут вам найти устройства, подключенные к вашей Wi-Fi, с помощью смартфона.

1. Использование Fing – Сетевые инструменты

Для тех, кто не знает, Fing – это полноценный сетевой инструмент, доступный для Android. С помощью FING вы можете анализировать любую сеть Wi-Fi. Не только это, но и приложение также поможет вам найти устройства, подключенные к Wi-Fi.

Шаг 1. Прежде всего, на вашем Android-устройстве загрузите и установите приложение. Fing – Сетевые инструменты. После установки приложения запустите его на своем Android-устройстве.

Установите инструменты Fing Network

Шаг 2. Теперь просто сканировать все устройства которые в настоящее время подключены к той же сети Wi-Fi.

Fing – Сетевые инструменты

Шаг 3. Теперь будет отображаться список устройств, которые в настоящее время используют одну и ту же сеть Wi-Fi.

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

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

Вот и все! Все готово, теперь вы можете проверить Mac-адрес устройства и заблокировать его на своем маршрутизаторе.

Использование Wifi Inspector

Это еще одно приложение, которое работает так же, как Fing. Wifi Inspector – это простой инструмент для просмотра всех устройств, подключенных к сети (как проводных, так и Wi-Fi, будь то консоли, телевизоры, компьютеры, планшеты, телефоны и т. Д.), Которые предоставляют соответствующие данные, такие как IP-адрес, производитель, имя устройства и MacAddress. .

Шаг 1. Прежде всего, загрузите и установите приложение WiFi Inspector на свое устройство Android и запустите его.

Читайте также:  Как удалить гугл аккаунт с андроида леново

Шаг 2. Теперь он покажет вам сеть. Просто нажмите на «Проверить сеть» продолжить.

Нажмите на «Проверить сеть»

Шаг 3. Теперь он просканирует устройства, подключенные к вашей сети Wi-Fi.

Шаг 4. Теперь он покажет вам весь список устройств, подключенных к вашей сети Wi-Fi.

Список устройств, подключенных к сети

Вот и все! Все готово, теперь вы можете заблокировать устройства, выполнив настройки маршрутизатора.

Использование NetScan

NetScan – еще один инструмент сетевого сканирования, доступный на Google Play Store. Самое замечательное в NetScan заключается в том, что он может обнаруживать подключенные устройства, сканируя порт. Не только это, NetScan также может помочь вам найти лазейки, уязвимости и открытые порты в сети.

Шаг 1. Прежде всего, посетите Google Play Store и загрузите NetScan. Вы можете использовать эту ссылку, чтобы загрузить и установить приложение напрямую.

Установить Net Scan

Шаг 2. После этого откройте приложение и предоставить все разрешения.

Шаг 3. Теперь вы увидите интерфейс, как показано ниже. Здесь нужно нажать на ‘Сканирование портов’

Шаг 4. Теперь NetScan просканирует подключенные устройства и выведет их список.

Шаг 5. Если вы хотите получить подробную информацию о подключенном устройстве, просто нажмите на него, чтобы получить краткий обзор.

Вот и все, готово! Вот как вы можете использовать NetScan для поиска устройств, подключенных к вашему Wi-Fi на Android.

2. Сканирование подключенных устройств на iPhone

Шаг 1. Прежде всего, загрузите и установите приложение на свое устройство iOS. Fing – Сетевые инструменты. После установки приложения запустите его на своем iPhone.

Шаг 2. Теперь просто просканируйте все устройства, которые в настоящее время подключены к одной и той же сети Wi-Fi.

Шаг 3. Теперь будет отображаться список устройств, которые в настоящее время используют одну и ту же сеть Wi-Fi.

Вот и все! Все готово, теперь вы можете проверить Mac-адрес устройства и заблокировать его на своем маршрутизаторе.

Некоторые другие приложения, которые вы можете использовать

Как и вышеперечисленные приложения, существуют и другие приложения для той же цели. Ниже мы поделились тремя лучшими приложениями для сканирования устройств, подключенных к сети Wi-Fi.

1. Кто у меня вайфай

Как следует из названия приложения, Who is on my WiFi – одно из лучших приложений для сканирования WiFi, доступных в Play Store. Приложение было в основном известно своим привлекательным пользовательским интерфейсом. Приложение эффективно сканирует и находит устройства, подключенные к сети Wi-Fi.

2. Сканер и анализатор WiFi

Как следует из названия приложения, WiFi Scanner & Analyzer – еще одно лучшее и самое популярное приложение для сканирования WiFi в списке. Приложение служит удобным способом составить список всех устройств, подключенных к персональной точке доступа Wi-Fi. Кроме того, у него также есть инструмент для проверки скорости сети, который точно измеряет скорость вашей сети.

3. WiFi Warden

Это еще одно лучшее приложение для сканирования Wi-Fi в списке, которое можно использовать для анализа сети Wi-Fi. Приложение для Android сообщает вам об уровне сигнала Wi-Fi вокруг вас. Не только это, но также говорится об устройствах, которые были подключены к сети Wi-Fi.

Итак, это одни из лучших приложений для сканирования Wi-Fi, доступных в Play Store. Вы можете использовать эти приложения для поиска устройств, подключенных к сети Wi-Fi.

Итак, выше все о том, как проверить устройства, подключенные к вашему Wi-Fi, с помощью вашего смартфона. Надеюсь, вам это понравится, поделитесь этим и с другими. Оставьте комментарий ниже, если у вас есть вопросы, связанные с этим.

Источник

Оцените статью