Я искал метод StartDiscovery()
в библиотеках bluez-5.36 и не смог найти.
Может кто-нибудь сказать, где этот метод реализован?
Упоминается в "adapter-api.txt
" каталога "bluez-5.36/doc
/".
Я искал метод StartDiscovery()
в библиотеках bluez-5.36 и не смог найти.
Может кто-нибудь сказать, где этот метод реализован?
Упоминается в "adapter-api.txt
" каталога "bluez-5.36/doc
/".
Вы должны установить BlueZ
с включенным экспериментальным флагом. BlueZ движется к развитию пользовательского пространства, используя DBus для предоставления «объектов» Bluetooth и связанных с ними методов и свойств.
Если вы установите d-feet
, вы действительно сможете проверить методы и типы объектов, описанные в документации API:
sudo apt-get install d-feet
Однако для функций, связанных с GATT, должен быть включен экспериментальный флаг. Если вы не знаете, как включить экспериментальный флаг, вы можете просто запустить sudo bluetoothd -E
, чтобы включить демона Bluetooth с экспериментальным флагом. Соответствующие интерфейсы GattManager1
и тому подобное будут опубликованы в интерфейсе DBus, который, опять же, я настоятельно рекомендую использовать d-feet
, чтобы получить представление о том, как все это работает.
Если вы ищете исходный код и документацию/помощь по использованию и программированию с помощью DBus API, вы можете проверить мой ответ здесь.
То есть использовать bluez через D-Bus API и GATT. Чтобы получить доступ к этой функции, вам необходимо скомпилировать bluez с некоторыми экспериментальными функциями (API GATT/D-Bus все еще является экспериментальным). Затем вы можете использовать API D-Bus для доступа к адаптеру и выполнения на нем методов (Start/StopDiscovery).
Пожалуйста, взгляните на этот проект: https://github.com/jomarmar/bluez-experimental . Это просто форк bluez с некоторыми изменениями, чтобы активировать экспериментальную функцию GATT API.
StartDiscovery
(и все другие официальные API-интерфейсы bluez) являются API-интерфейсами DBUS. Ваше приложение вызовет это через вызов DBUS. Он будет обслуживаться демономbluetoothd
, который выполняет основную работу. Реализация на сторонеbluetoothd
для этого API — это функцияstart_discovery
в адаптере . ва>. - person kaylum   schedule 15.12.2015