22
24
if self.exit_on_release:
25
@dbus.service.method("org.bluez.Agent", in_signature="os", out_signature="")
27
@dbus.service.method("org.bluez.Agent",
28
in_signature="os", out_signature="")
26
29
def Authorize(self, device, uuid):
27
30
bus = dbus.SystemBus()
28
attr = dbus.Interface(bus.get_object("org.bluez", device), "org.bluez.Device").GetProperties()
31
attr = dbus.Interface(
32
bus.get_object("org.bluez", device),
33
"org.bluez.Device").GetProperties()
30
35
# Only accept input (HID) devices
31
36
if 'Class' in attr:
32
37
if (attr['Class'] & 0x500) == 0x500:
33
dbus.Interface(bus.get_object("org.bluez", device), "org.bluez.Device").SetProperty("Trusted", True)
39
bus.get_object("org.bluez", device),
40
"org.bluez.Device").SetProperty("Trusted", True)
36
43
raise Rejected("Connection rejected by user")
38
@dbus.service.method("org.bluez.Agent", in_signature="o", out_signature="s")
45
@dbus.service.method("org.bluez.Agent",
46
in_signature="o", out_signature="s")
39
47
def RequestPinCode(self, device):
42
@dbus.service.method("org.bluez.Agent", in_signature="o", out_signature="u")
50
@dbus.service.method("org.bluez.Agent",
51
in_signature="o", out_signature="u")
43
52
def RequestPasskey(self, device):
44
53
return dbus.UInt32(0000)
46
@dbus.service.method("org.bluez.Agent", in_signature="ou", out_signature="")
55
@dbus.service.method("org.bluez.Agent",
56
in_signature="ou", out_signature="")
47
57
def DisplayPasskey(self, device, passkey):
50
@dbus.service.method("org.bluez.Agent", in_signature="ou", out_signature="")
60
@dbus.service.method("org.bluez.Agent",
61
in_signature="ou", out_signature="")
51
62
def RequestConfirmation(self, device, passkey):
75
88
if os.path.exists("/tmp/ubiquity-bluetooth-done"):
79
92
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
80
93
bus = dbus.SystemBus()
81
manager = dbus.Interface(bus.get_object("org.bluez", "/"), "org.bluez.Manager")
82
adapter = dbus.Interface(bus.get_object("org.bluez", manager.DefaultAdapter()), "org.bluez.Adapter")
94
manager = dbus.Interface(
95
bus.get_object("org.bluez", "/"), "org.bluez.Manager")
96
adapter = dbus.Interface(
97
bus.get_object("org.bluez", manager.DefaultAdapter()),
83
99
agent = Agent(bus, "/ubiquity/bluetooth/agent")
84
100
mainloop = GObject.MainLoop()
85
101
adapter.RegisterAgent("/ubiquity/bluetooth/agent", "DisplayYesNo")