系统:Ubuntu 15.10 和 Bluez 5.38
带有 BlueZ 4 的 PyBluez 对此没有任何问题。但是自从迁移到 BlueZ 5 并进行必要的调整以运行蓝牙代码后,我无法在没有sudo
. 使用sudo
一切按预期工作。但是,如果我不使用 sudo 运行,则会引发以下错误:
Traceback (most recent call last):
File "/home/sidmeister/mymodule/py34/lib/python3.4/site-packages/PyBluez-0.22-py3.4-linux-x86_64.egg/bluetooth/bluez.py", line 240, in advertise_service
protocols)
_bluetooth.error: (13, 'Permission denied')
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.4/runpy.py", line 170, in _run_module_as_main
"__main__", mod_spec)
File "/usr/lib/python3.4/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/sidmeister/mymodule/mymodule/blue/receiver.py", line xxx, in some_function
profiles=[bluetooth.SERIAL_PORT_PROFILE]
File "/home/sidmeister/mymodule/py34/lib/python3.4/site-packages/PyBluez-0.22-py3.4-linux-x86_64.egg/bluetooth/bluez.py", line 242, in advertise_service
raise BluetoothError (str (e))
bluetooth.btcommon.BluetoothError: (13, 'Permission denied')
我知道这源于更新的蓝牙库中增加的安全性,这就是它需要的原因sudo
。但是,是否有任何特殊video
的组(例如访问相机)具有对蓝牙的固有访问权限,以便我可以让我的用户成为该组的成员并且它可以在没有蓝牙的情况下访问蓝牙sudo
?仅供参考,我的用户已经是dialout
组的成员,它没有帮助。
请让我知道是否有其他方法可以解决此问题。