def do_pair():
global pairing
global mainloop
bus = dbus.SystemBus()
#remove connected and paired device from bluez
remove_paired_bt_device()
# we are using our own agent to bypass authorization and get callback for connected state
path = "/test/agent"
agent = my_bt_agent(bus, path)
obj = bus.get_object('org.bluez', "/org/bluez");
manager = dbus.Interface(obj, "org.bluez.AgentManager1")
manager.RegisterAgent(path, 'NoInputNoOutput')
manager.RequestDefaultAgent(path)
adapter1_path = "/org/bluez/hci0"
adapter1 = dbus.Interface(bus.get_object("org.bluez", adapter1_path), "org.freedesktop.DBus.Properties")
adapter1.Set("org.bluez.Adapter1", "Powered", dbus.Boolean(1))
adapter1.Set("org.bluez.Adapter1", "Pairable", dbus.Boolean(1))
adapter1.Set("org.bluez.Adapter1", "Discoverable", dbus.Boolean(1))
# let's wait for paired callback from bluez or timeout from led blink
mainloop.run()
pairing = False
manager.UnregisterAgent(path)
agent.remove_from_connection()
评论列表
文章目录