Android BLE Design Pattern жизнеспособность
Я посмотрел на множество тем на стек Android BLE в различных веб-сайтах. Из того, что я собрал, стек Bluetooth в Android ненадежен и не подходит для любого быстрого и одновременного соединения.
В настоящее время я работаю над проектом, который использует BLE в качестве основной бизнес-идеи. Идея состоит в том, чтобы настроить устройства BLE в верхней части каждой двери для рекламы на телефонах с помощью рамки ibeacon (для поддержки как iOS, так и Android). Принимая во внимание, что приложение для Android будет читать рекламу и подключаться к ней через GATT и делать характерные записи. Самая большая проблема заключается в том, что проекту требуется быстрая запись для каждого проходящего маяка (в течение 6 секунд для подключения и записи характеристики).
Это означает, что сканирование и запись должны выполняться часто для каждой двери, мимо которой они проходят. Я точно знаю, что андроид 7 и выше имеют максимум 5 пусков / остановок сканирования на каждые 30 секунд. Поэтому моя логика использует интервал 3-секундного сканирования и затем 3-секундную запись для каждого обнаруженного маяка. НАПРИМЕР. За период сканирования 3 с приложение обнаружило 3 маяка, эти 3 добавлены в очередь. Период записи 3 секунды. Очередь снята с очереди и выполняется одно за другим для подключения и записи для каждого найденного маяка.
Сканирование и запись являются взаимоисключающими, как я слышал, и создавали много проблем при их совместном выполнении. Например, высокая частота отказов при подключении -> запись характеристики. Однако, делая их взаимоисключающими, это означает, что я могу подключаться и писать только для ограниченного числа маяков, если я прохожу через несколько дверей с синим маяком.
Моя логика подключения и записи содержит тайм-аут по умолчанию на 1,5 с, максимум 3 попытки. Каждое действие gatt, такое как.connect,.discovery, содержит задержку 200 мс.
Мне интересно следующий вопрос
Какое среднее время требуется для подключения, а затем характеристики записи (не включая сканирование). Я пробовал, и кажется, что некоторые телефоны занимают всего 500 мс, в то время как некоторые другие телефоны занимают 4,5 с или просто не удается установить соединение и запись.
Целостна ли вся идея? Весь проект требует не более 6 секунд, чтобы соединить и записать характеристику для каждой двери, через которую он проходит, которая имеет на нем маячок.
Какие-либо улучшения должны быть сделаны?