Я искал метод StartDiscovery()
в bluez-5.36 библиотеки и не нашел.Bluez-5.36 StartDiscovery() метод
Может кто-нибудь рассказать, где этот метод реализован?
Его упомянутые в "adapter-api.txt
«из» bluez-5.36/doc
/»каталог.
Я искал метод StartDiscovery()
в bluez-5.36 библиотеки и не нашел.Bluez-5.36 StartDiscovery() метод
Может кто-нибудь рассказать, где этот метод реализован?
Его упомянутые в "adapter-api.txt
«из» bluez-5.36/doc
/»каталог.
То есть использовать Bluez через D-Bus API и ГАТТ. Для того, чтобы получить доступ к этой функции вам необходимо собрать Bluez с некоторыми экспериментальными функциями (API GATT/D-Bus по-прежнему является экспериментальным). Затем вы можете использовать API-интерфейс D-Bus для доступа к адаптеру и выполнять его методы (Start/StopDiscovery)
Пожалуйста, взгляните на этот проект: https://github.com/jomarmar/bluez-experimental. просто вилка bluez с некоторыми изменениями для активации экспериментальной функции API GATT.
Вы должны установить BlueZ
с включенным флажком эксперимента. BlueZ движется в направлении развития пользовательского пространства, используя DBus для раскрытия объектов и связанных с ним методов и свойств bluetooth.
При установке d-feet
вы можете проверить методы и типы объектов, описанных в документации API:
sudo apt-get install d-feet
Однако для функциональности ГАТТ, связанных, экспериментальный флаг должен быть включен. Если вы не знаете, как включить флаг эксперимента, вы можете просто запустить sudo bluetoothd -E
, чтобы включить Bluetooth-демон с экспериментальным флагом. Соответствующие интерфейсы GattManager1
будут опубликованы в интерфейсе DBus, и я настоятельно рекомендую использовать d-feet
, чтобы получить представление о том, как все это работает.
Если вы ищете какой-либо исходный код и документацию/помощь в отношении использования и программирования с помощью API DBus, вы можете проверить мой ответ here.
Как упоминалось в ответе @jorgemartinez, «StartDiscovery» (и все другие официальные API-интерфейсы bluez) являются API-интерфейсами DBUS. Ваше приложение вызовет это с помощью вызова DBUS. Он будет обслуживаться демоном 'bluetoothd', который выполняет настоящую работу. Реализация на стороне 'bluetoothd' для этого API - это функция' start_discovery' в [adapter.c] (https://github.com/r10r/bluez/blob/master/src/adapter.c). – kaylum