2014-12-04 2 views
3

Я пытаюсь выполнить сканирование для устройств Bluetooth с использованием Bluez DBus API. Я установил bluez-5.25, используяКак сканировать устройства bluetooth LE через dbus API?

--enable-experimental 

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

org.bluez.ProximityMonitor1 

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

Все ли необходимые вещи доступны в DBus API? И что необходимо для непрерывного сканирования устройств LE?

ответ

3

Вам необходимо зарегистрироваться для создания DBUS объектов org.bluez.Device1 proxy. Интерфейс org.bluez.Adapter1 можно затем использовать для StartDiscovery. Это сканирует как классические, так и LE-устройства. Когда устройство обнаружено, будет создан объект Device1, и будет активирован ваш зарегистрированный обратный вызов.

+0

Я делаю это так. Кажется, мне нужно активно сканировать, чтобы увидеть устройства. Пассивное сканирование не вызывает сообщений dbus. Я пытаюсь отслеживать устройства LE. InterfacesAdded генерируется только при первом обнаружении. Каким будет способ реализации, если я хочу знать, что устройство все еще рядом со мной? Я думал, что близость может быть использована для этого, но его нет. Не знаю, работает ли bluez, или устройство не поддерживает профиль. –

+0

Профиль монитора приближения - это не то же самое, что и сканирование. Вам необходимо отсканировать, прежде чем вы сможете использовать этот профиль (или любой профиль). Сканирование = открытие ближайших устройств (для получения своего BT-адреса и служб). Proximity Monitor = после обнаружения, используйте эту службу, если она поддерживается удаленным устройством, для чтения значений rssi и, при необходимости, оповещения на основе близости. – kaylum

+0

Я был не очень ясен. Я просмотрел устройства и затем просмотрел каждый найденный. Я бы ожидал найти устройство, предлагающее интерфейс ProximityMonitor. Но я ничего не видел. У меня есть bluez, скомпилированный с --enable-experimental, и я запустил daemon с -E. Но тогда я не уверен, могу ли я видеть интерфейс только в том случае, если он объявляет о межпространстве, и мои маяки не поддерживают его. –

Смежные вопросы