Я пытался получить простой пример Python bluetooth, работающий на моем ноутбуке lenovo y50-70 под управлением Ubuntu 18. Но при этом я заметил, что библиотека Pybluez не может найти никаких устройств, в то время как использование инструмента bluetoothctl может.
import bluetooth
print("performing inquiry...")
nearby_devices = bluetooth.discover_devices(duration=8,
lookup_names=True, flush_cache=True, lookup_class=False)
print("found %d devices" % len(nearby_devices))
for addr, name in nearby_devices:
try:
print(" %s - %s" % (addr, name))
except UnicodeEncodeError:
print(" %s - %s" % (addr, name.encode('utf-8', 'replace')))
Запуск приведенного выше кода дает в качестве вывода: found 0 devices
.Во время работы bluetoothctl выдает следующий вывод:
[NEW] Controller 40:B8:9A:44:E0:46 daan-Lenovo-Y50-70 [default]
Agent registered
[bluetooth]# scan on
Discovery started
[CHG] Controller 40:B8:9A:44:E0:46 Discovering: yes
[NEW] Device 30:AE:A4:37:A2:4A 30-AE-A4-37-A2-4A
[NEW] Device D0:D2:B0:91:1C:C5 D0-D2-B0-91-1C-C5
[NEW] Device 70:73:CB:DF:1B:08 70-73-CB-DF-1B-08
[NEW] Device 51:80:89:6F:6E:B6 51-80-89-6F-6E-B6
[bluetooth]#
Я попытался запустить скрипт Python от имени пользователя root, и моя текущая версия pybluez - 0.22.Я надеюсь, что кто-нибудь знает, как решить эту проблему.