3 from __future__ import absolute_import, print_function, unicode_literals
7 import dbus.mainloop.glib
9 def create_device_reply(device):
10 print("Pairing succeed!")
13 def create_device_error(error):
14 print("Pairing failed.")
17 if __name__ == '__main__':
18 dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
20 mainloop = gobject.MainLoop()
22 bus = dbus.SystemBus()
23 manager = dbus.Interface(bus.get_object("org.bluez", "/"),
26 adapter0_path = manager.FindAdapter("hci0")
27 adapter1_path = manager.FindAdapter("hci1")
29 adapter0 = dbus.Interface(bus.get_object("org.bluez", adapter0_path),
31 adapter1 = dbus.Interface(bus.get_object("org.bluez", adapter1_path),
34 adapter0_address = adapter0.GetProperties()["Address"]
35 adapter1_address = adapter1.GetProperties()["Address"]
37 print(" hci0: " + adapter0_address)
38 print(" hci1: " + adapter1_address)
41 print("Removing any existing bond...")
44 device = adapter0.FindDevice(adapter1_address)
45 adapter0.RemoveDevice(device)
50 device = adapter1.FindDevice(adapter0_address)
51 adapter1.RemoveDevice(device)
57 print("Reading local Out of Band data...")
59 oob_adapter0 = dbus.Interface(bus.get_object("org.bluez",
60 adapter0_path), "org.bluez.OutOfBand")
61 oob_adapter1 = dbus.Interface(bus.get_object("org.bluez",
62 adapter1_path), "org.bluez.OutOfBand")
64 oob0 = oob_adapter0.ReadLocalData()
65 oob1 = oob_adapter1.ReadLocalData()
69 print("Exchanging Out of Band data...")
71 oob_adapter0.AddRemoteData(adapter1_address, oob1[0], oob1[1])
72 oob_adapter1.AddRemoteData(adapter0_address, oob0[0], oob0[1])
76 print("Starting to pair.")
77 adapter1.CreatePairedDevice(adapter0_address, "/test/agent_oob",
79 reply_handler=create_device_reply,
80 error_handler=create_device_error)