bluetooth test что это за программа на андроид
Android Bluetooth Low Energy (BLE) — готовим правильно, часть #1 (scanning)
Содержание
Часть #1 (scanning), вы здесь.
Могу точно сказать – это было сложней, чем представлял, мне пришлось приложить немало усилий для стабильной работы под Android. Я изучил много статей в свободном доступе, некоторые оказались ошибочными, многие были очень полезными и помогли в деле. В этой серии статей я хочу описать свои выводы, чтобы вы не тратили уйму времени на поиски как я.
Особенности работы BLE под Android
Google документация по BLE очень общая, в некоторых случаях нет важной информации или она устарела, примеры приложений не показывают, как правильно использовать BLE. Я обнаружил лишь несколько источников, как правильно сделать BLE. Презентация Stuart Kent дает замечательный материал для старта. Для некоторых продвинутых тем есть хорошая статья Nordic.
Производители делают изменения в Android BLE стеке или полностью заменяют на свою реализацию. И надо учитывать разницу поведения для разных устройств в приложении. То что прекрасно работает на одном телефоне, может не работать на других! В целом не все так плохо, например реализация Samsung сделана лучше собственной реализации от Google!
В Android есть несколько известных (и неизвестных) багов которые должны быть обработаны, особенно в версиях 4,5 и 6. Более поздние версии работают намного лучше, но тоже имеют определенные проблемы, такие как случайные сбои соединения с ошибкой 133. Подробнее об этом ниже.
Не претендую на то, что я решил все проблемы, но мне удалось выйти на «приемлемый» уровень. Начнем со сканирования.
Сканирование устройств
Перед подключением к устройству вам нужно его просканировать. Это делается при помощи класса BluetoothLeScanner :
… дополнительные данные, см. документацию по ScanResult здесь.
Настраиваем фильтр для сканирования
Вообще можно передать null вместо фильтров и получить все ближайшие устройства, иногда это полезно, но чаще требуются устройства с определенным именем или набором UUID сервисов.
Сканирование устройств по UUID сервиса
Используется если вам необходимо найти устройства определенной категории, например мониторы артериального давления со стандартным сервисным UUID: 1810. При сканировании устройство может содержать в Advertisement data UUID сервис, который характеризует это устройство. На самом деле эти данные ненадежные, фактически сервисы могут не поддерживаться, или подделываться Advertisement data данные, в общем тут есть творческий момент.
Прим. переводчика: одно из моих устройств со специфичной прошивкой, вообще не содержало список UUID сервисов в Advertisement data, хотя все остальные прошивки этого устройства работали ожидаемо.
Пример сканирования службы с артериальным давлением:
Обратите внимание на короткий UUID (например 1810 ), он называется 16-bit UUID и является частью длинного 128-bit UUID (в данном случае 00001810-000000-1000-8000-000-00805f9b34fb ). Короткий UUID это BASE_PART длинного UUID, см. спецификацию здесь.
Сканирование устройств по имени
Поиск устройств использует точное совпадение имени устройства, обычно это применяется в двух случаях:
поиск конкретного устройства
Сканирование устройств по MAC-адресам.
Обычно применяется для переподключения к уже известным устройствам. Обычно мы не знаем MAC-адрес девайса, если не сканировали его раньше, иногда адрес печатается на коробке или на корпусе самого устройства, особенно это касается медицинских приборов. Существует другой способ повторного подключения, но в некоторых случаях придется еще раз сканировать устройство, например при очистке кеша Bluetooth.
Вероятно вы уже поняли, что можно комбинировать в фильтре UUID, имя и MAC-адрес устройства. Выглядит неплохо, но на практике я не применял такое. Хотя может быть вам это пригодится.
Настройка ScanSettings
ScanSettings объясняют Android как сканировать устройства. Там есть ряд настроек, которые можно задать, ниже полный пример:
ScanMode
Безусловно, это самый важный параметр. Определяет метод и время сканирования в Bluetooth стеке. Такая операция требует много энергии и необходим контроль над этим процессом, чтобы не разрядить батарею телефона быстро. Есть 4 режима работы, в соответствии с руководством Nordics и официальной документацией:
Callback Type
Эта настройка контролирует как будет вызываться callback со ScanResult в соответствии с заданными фильтрами, есть 3 варианта:
Match mode
Настройка того, как Android определяет «совпадения».
Number of matches
Параметр определяет сколько advertisement данных необходимо для совпадения.
Report delay
Важно: есть известный баг для Samsung S6 / Samsung S6 Edge, когда все результаты сканирования имеют один и тот же RSSI (уровень сигнала) при задержке больше нуля.
Кеширование Android Bluetooth стека
Очистка кеша
Bluetooth кеш, как и любой другой, не существует вечно, есть 3 ситуации, когда он очищается:
Выключение и включение системного переключателя Bluetooth
Очистка данных приложения (в ручном режиме в настройках телефона)
Это достаточно неудобный момент для разработчиков, потому что телефон часто перезагружается, пользователь может включать-выключать самолетный режим. Есть еще различия между производителями телефонов, например на некоторых телефонах Samsung, кеш не очищался при выключении Bluetooth.
Это значит, что нельзя полагаться на данные об устройстве из BT кеша. Есть небольшой трюк, он поможет узнать закешировано ли устройство или нет:
Это важный момент, если нужно подключиться к устройству позже, не сканируя его. Подробнее об этом позже.
Непрерывное сканирование?
Вообще хорошая практика – избегать непрерывного сканирования потому что, это очень энергоемкая операция, а пользователи любят, когда батарея их смартфона работает долго. Если вам действительно нужно постоянное сканирование, например при поиске BLE-маячков, выберите настройки сканирования с низким потреблением и ограничивайте время сканирования, например когда приложение находится только на переднем плане (foreground), либо сканируйте с перерывами.
Плохая новость в том, что Google в последнее время ограничивает (неофициально) непрерывное сканирование:
с Android 7 запуск и останов сканирования более 5 раз за 30 секунд временно отключает сканирование.
Непрерывное сканирование в фоне
Google значительно усложнил сканирование на переднем плане. Для фонового режима вы столкнетесь с еще большими трудностями! Новые версии Android имеют лимиты на работу служб в фоновом режиме, обычно после 10 минут работы, фоновый сервис прекращает свою работу принудительно. Посмотрите возможные решения этой проблемы:
Проверка разрешений (permissions)
Есть еще несколько важных моментов, прежде чем мы закончим статью. Для начала сканирования нужны системные разрешения (permissions):
Убедитесь, что все разрешения одобрены, или запросите их у пользователя. Разрешение ACCESS_COARSE_LOCATION Google считает «опасным» и для него требуется обязательное согласие пользователя.
Прим. переводчика, в моем проекте для корректной работы с BLE потребовалось еще 2 разрешения: ACCESS_FINE_LOCATION (для API ACCESS_BACKGROUND_LOCATION обсуждение на Stackoverflow.
В итоге полный список разрешений включая версию Android10:
Заключение
Мы научились запускать сканирование BLE устройств с учетом жизненного цикла Activity (Fragment / Service), использовать фильтры и различные настройки сканирования, также узнали все нужные разрешения (permissions) для удачного запуска сканирования и особенности работы Android-Bluetooth кеша. В следующей статье мы погрузимся глубже в процесс подключения и отключения к устройствам.
8 лучших приложений для диагностики Android-смартфона
– Эх, собирался купить смартфон, а получил кота
– Где были твои глаза?
– Да с виду-то он целый, только нерабочим оказался. Не знал, как его проверить, вот и купил «кота в мешке».
Ситуация досадная, но вполне обычная, когда бывший чьим-то мобильник переходит к новому владельцу. Не хотите стать жертвой обмана? Тогда тестируйте девайс перед покупкой.
В сегодняшнем обзоре – 8 лучших приложений для диагностики Android-смартфонов. Они помогут вам узнать, что представляет собой устройство, проверить его исправность и оценить работу каждой функции. Пара минут – и все нужные сведения как на ладони.
AIDA64
Аида отображает полную детализированную информацию об аппаратной и программной начинке девайса, выводит показания датчиков, данные о подключении к сетям и многое другое.
В приложении 13 основных разделов:
Однако мобильная Aida64 не имеет в составе инструментов нагрузочного тестирования и бенчмаркинга. Полученные данные она отображает в виде списков и числовых показателей, понимать которые должен сам пользователь. То есть рассчитана на опытных.
Phone Doctor Plus
То ли дело Phone Doctor Plus! Вот он-то и выручит тех, кто держит смартфон впервые и просто хочет узнать, работают ли на нем камеры, динамики, датчики и прочие «железки». Впрочем, бывалые Андроид-юзеры тоже уважают «Доктора»: как ни крути, а приложение полезное. И содержательное.
В числе его возможностей:
Рабочая область Phone Doctor Plus состоит из четырех основных вкладок:
Утилита не собирает столь подробных сведений о каждой детали, как Aida64, а только тестирует функционал. Для проведения теста пользователь должен выполнить инструкции, которые видит на экране.
Phone Check
Phone Check (Mobile Phone Checker / Tester & Info) совмещает в себе функции Аиды и Доктора: отображает подробные сведения об аппарате и проверяет его работоспособность. Всего в приложении 11 диагностических тестов:
И 2 режима тестирования – простой и подробный. Тесты запускаются последовательно – один за другим. У пользователя есть возможность пропускать отдельные тесты или их этапы.
Помимо оценки функциональности, Phone Check отображает информацию о текущем использовании устройства – загрузке процессора, памяти, сети, заряде аккумулятора, а также общие сведения о системе.
Device Checker *SAM*
Утилита Device Checker *SAM* (Phone and tablet testing) разработана для диагностики смартфонов и планшетов Samsung, однако исправно выполняет свои задачи и на устройствах других марок. За исключением определения подлинности аппарата – эти функции доступны только владельцам Самсунгов. Зато остальное – 20 с лишним тестов, могут использовать все.
Как показал опыт, на телефоне «НЕ Самсунг» Device Checker *SAM* выдает вполне достоверные результаты – такие же, как рассмотренные выше утилиты-конкуренты. А единственное, что может вызвать затруднение у некоторых юзеров, – это англоязычный интерфейс приложения.
Device Checker *SAM* тестирует следующие компоненты и функции:
Последний тест – информация об устройстве, оказался самым неинформативным. Видимо, он тоже предназначен только для Самсунгов.
PhDoctor
Утилита PhDoctor (Mobile Phone Checker / Tester & Info) имеет почти такой же набор функций, что и конкуренты. Но помимо стандартных тестов, в ней есть пара уникальных. Один из них – определение, является ли телефон Samsung «refurbished», то есть подвергался ли он ремонту на фабрике или в сервисном центре производителя (продавца) до того, как поступил в продажу. Второй – идентификация марки и модели аппарата по номеру IMEI через веб-ресурс www.imei.info
При работе с PhDoctor некоторые пользователи столкнутся с такой же проблемой, что и в Device Checker *SAM* – он тоже страдает отсутствием русского языка.
Прочие функции и возможности PhDoctor:
Тестирование Android
Столь прямолинейное название точно не даст перепутать это приложение с чем-либо другим. Да, «ТестированиеAndroid» именно это и делает. Но не только. Кроме 30-ти различных тестов, оно содержит инструменты сбора информации о системе и несколько полезных «приколюшек» – сканер QR-кодов, измеритель громкости звука, горизонтальный уровень и кнопку быстрого включения фонарика.
Интерфейс утилиты так же прост, как и название. Функциональные кнопки сгруппированы по назначению:
«Тестирование Android» может запускаться на смартфонах, планшетах и смарт-часах. Производитель заявляет, что оно оптимизировано для Android 9.0 и некоторых устройств марки Samsung, LG, Huawei, HTC, Google Pixel, Sony Xperia и Nokia.
Phone Doctor For Android
Phone Doctor For Android имеет несколько унылый дизайн. И первое, что видит пользователь после его запуска, – такой же унылый рекламный баннер. Русским языком здесь тоже, увы, не пахнет. Похоже, у многих это отбивает желание юзать программу дальше, но если присмотреться к ее функционалу, то всё не так уж и печально.
Функции «Доктора №2» поделены на 4 группы: «Датчики» (Sensors), «Железо» (Hardware), «Хранилище и оперативная память» (Storage Information) и «Сеть и Wi-Fi» (Network & WiFi).
AnTuTu Benchmark
Согласитесь, без AnTuTu Benchmark обзор приложений для диагностики Андроид-гаджетов был бы неполным. Ведь это, пожалуй, самое популярное в мире средство сравнительного тестирования производительности мобильных устройств.
По итогам каждого теста смартфон получает баллы (иногда их называют «попугаями»), которые затем суммируются и формируют общий показатель AnTuTu. Этим показателем и принято мериться.
Кроме того, AnTuTu Benchmark собирает общие сведения о системе и отдельных ее составляющих – сенсорах, экране, батарее, тачскрине, HTML 5 в браузере, а также проводит стресс-тесты на стабильность.
Какое из восьми приложений самое лучшее? Наверное, то где больше функций и удобней интерфейс. Чаще всего так и есть, но бывают исключения. Ведь не существует программ, которые корректно работают абсолютно на всех устройствах. Поэтому лучшим для вас будет то, что больше всего «по душе» и «по зубам» вашему смартфону.
Понравилась статья? Подпишитесь на канал, чтобы быть в курсе самых интересных материалов
ТОП-5 полезных приложений для Bluetooth на Андроид
Не все знают, насколько может быть полезным использование Bluetooth соединения. В статье собраны лучшие приложения для телефонов на ОС андроид, поддерживающих Bluetooth, которые позволят пользователем расширить функционал своих устройств или облегчить их эксплуатацию. Играйте через блютуз с друзьями, передавайте файлы, общайтесь или контролируйте свои беспроводные гаджеты.
Контроллер BT
Это приложение превратит ваш андроид смартфон в контроллер для игры с помощью эмуляторов. Важной особенностью является полная свобода при настройке джойстика и кнопок, а также возможность объединить до четырех человек в одной игре через блютуз.
Управлять эмулятором через андроид телефон можно на планшете, ноутбуке или даже телевизоре со Smart TV. Приложение использует беспроводные блютуз и Wi-Fi соединения, что делает его универсальным для любителей приставочных игр. Достаточно установить его на устройство, с которого вы будете управлять игрой, и на устройство с эмулятором, соединить их во вкладке «Create Host».
Bluetooth Pair
Отличное приложение для автоматизации процесса подключения двух устройств на андроид через беспроводное блютуз соединение. Это очень удобно пользователям, которые имеют в своем распоряжении большое количество сторонних гаджетов. Например, это могут быть аудиоколонки, гарнитуры, автомобильные динамики или умные часы.
Вместо того, чтобы тратить время на подключение каждого устройства к вашему телефону на андроид, вы можете автоматизировать их с помощью Блютуз Pair и сэкономить свое время. Среди особенностей этого приложения можно отметить безупречную работу с операционными системами Андроид, начиная с шестой версии, обширные настройки, несколько дизайнов заглавной темы и простую навигацию.
BlueBatt
Контролируйте заряд батареи своих беспроводных устройств и получайте о них максимально подробную информацию о состоянии соединения блютуз благодаря андроид приложению BlueBatt. В приложении пользователи также найдут некоторые дополнительные бесплатные функции, которые обеспечат еще более комфортное использование своих гаджетов:
LightBlue
Удобное приложения для пользователей Андроид, использующих устройства с Блютуз Low Energy (BLE) соединениями. С этим приложением можно сканировать, подключаться и просматривать информацию о находящихся рядом гаджетах с Блютуз Low Energy соединением.
В режиме реального времени также возможно просматривать уровень и состояние сигнала, что позволяет определить, насколько вы близко находитесь к гаджету – это особенно удобно во время поиска потерявшихся устройств.
Все действия в андроид приложении можно отследить в специальном журнале, туда автоматически заносятся данные о подключенных ранее устройствах через блютуз, чтении информации или обнаружении новых гаджетов.
Bluetooth виджет
Подключайте любимые колонки или наушники одним нажатием на экран через блютуз. Для этого достаточно установить виджет и занести в его память обнаруженное устройство.
Одним касанием вы сможете включить аудиогаджет и запустить установленный на телефоне с андроид Spotify без дополнительных переходов в другие приложения или настройки. Скачать приложение Spotify бесплатно для Андроид можно в Google Play.
Определение подключенности Bluetooth под Android
Итак, передо мной возникла задача — программно определить подключенно ли какое-то из сопряженных устройств в данный момент к моему телефону посредством Bluetooth. Долго и безуспешно выискивал в сети какое-либо готовое решение по этому поводу, однако удалость найти лишь только указание на то, что есть возможность отслеживания события подключения по Bluetooth. Но ведь программа может быть запущена уже после события, следовательно, это мне не подошло.
Собственно после этого (и листания разделов посвященных Bluetooth в официальной документации Android) и пришла мысль попробовать соединяться с каждым сопряженным устройством, а далее смотреть на успех операции: если успешно — значит устройство в зоне покрытия и подключено. Затея оказалась успешной.
Однако, на пути к ее реализации ожидал еще подвох:
Этот код создания клиентского подключения никак не хотел выполняться, всегда возвращая ошибку «Service discovery failed». Снова поиск, чтение и выявление факта массы жалоб на такую же проблему. Советы же по решению данной проблемы сводились к одному: предложению различных значений для MY_UUID. Я перепробовал N-ное количество различных UUID из этих советов, но ни с одним соединение между Windows Mobile и Android получить не удалось. Интересный момент: при попытке соединения у «спящего» WM-коммуникатора загорался дисплей. То есть соединение все же инициализируется, но по каким-то причинам не устанавливается. Решение нашлось у соотечественника:
И данный способ действительно работает безотказно.
Общий же код проверки Bluetooth’а на подключенность выглядит примерно так:
Конечно, работает код не молниеносно. Но тем не менее, код работает и функцию свою выполняет, тем более, что других решений мне найти не удалось. В связи с тем, что опыт работы в Андроид у меня не такой большой, возможно, в коде есть что еще подправить или существует какое-то другое решение. Но это уже подскажут знатоки.
Test bluetooth Ring & Battery
Многие люди пользуются блютуз-наушниками. Это удобные аксессуары для повседневного использования. Далеко не на всех подобных гарнитурах имеется широкий спектр настроек, программное обеспечение.
Поэтому не всегда можно узнать уровень заряда подобных девайсов. Для этого и предназначено представленное приложение. Оно позволяет узнать на сколько процентов заряжена гарнитура, ознакомиться со второстепенной информацией (статусом), воспроизвести рингтон.
Зайдя в приложение, вы сразу окажетесь на основной странице. Пользователям не придётся предоставлять права, настраивать программу. Она сразу готова к использованию. В центре отображается картинка (она не информативная), а снизу имеется основная кнопка. Нажав на неё, начнётся проверка данных. Обратите внимание, чтобы данная процедура выполнилась корректно, нужно заранее синхронизировать, подключить гарнитуру к мобильному устройству.
После окончания процесса, появится дополнительный слайд. На нём будет отображаться уровень заряда батареи наушников. Сразу нужно отметить, что показанное число не всегда является точным. Дело в том, что у каждой гарнитуры имеются свои нюансы, связанные с калибровкой аккумулятора. Показанное значение является приблизительным. Рассчитывайте на погрешность +-5-10%.
В программе «Test bluetooth Ring & Battery» имеется несколько второстепенных функций и разделов.