Бизнес-постановка задачи
Необходимо реализовать через Bluetooth возможность передачи идентификационных данных об устройстве и получение данных о других устройствах вокруг.
Описание реализации
функционал bt нужно будет оформить в виде плагина, т.к. мы разрабатываем приложение на html5 с помощью фреймворка Cordova. Плагин пишется под каждую конкретную платформу. Под андроид мы его уже написали.
Вот документация по созданию плагина для iOS:
Требования к плагину:
1. При запуске начинать вещание идентификатора в advertise пакете (для передачи информации в advertise пакете надо использовать поле local name для сервиса).
2. Включить прослушивание advertise пакетов. Начниая с ios 7.1 прослушивание может выполняться даже после полного завершения приложения. Т.е os постоянно прослушивает эфир и при обнаружении подходящих вещателей поднимает приложение.
3. При обнаружении вещателя дергать переданный ранее callback
Сейчас методы плагина под андроид выглядят так:
- function init(); // начальная инициализация, вызывается при старте приложения
- function listenStatus(callback); // подписаться на получение событий смены статуса BT. При возникновении таких событий плагин должен будет дернуть callback
- function startScan(callback); // запустить сканирование (поиск) устройств. При обнаружении устройства нужно будет вызвать callback
- function stopScan(); // принудительно остановить поиск
- function getStatus(callback); // получить текущий статус BT (вк/выкл, видимый/нет)