#!/usr/bin/python import gobject import dbus import dbus.service import dbus.mainloop.glib class Agent(dbus.service.Object): @dbus.service.method("org.bluez.Agent", in_signature='', out_signature='') def Release(self): print 'Release' mainloop.quit() @dbus.service.method("org.bluez.Agent", in_signature='o', out_signature='s') def RequestPasskey(self, device): print 'RequestPasskey (' + device + ')' return '1234' @dbus.service.method("org.bluez.Agent", in_signature='s', out_signature='') def ConfirmModeChange(self, mode): print 'ConfirmModeChange (' + mode + ')' return @dbus.service.method("org.bluez.Agent", in_signature='', out_signature='') def Cancel(self): print 'Cancel' return if __name__ == '__main__': dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) bus = dbus.SystemBus() manager = dbus.Interface(bus.get_object('org.bluez', '/'), 'org.bluez.Manager') path = manager.DefaultAdapter() adapter = dbus.Interface(bus.get_object('org.bluez', path), 'org.bluez.Adapter') path = '/test/agent' object = Agent(bus, path) adapter.RegisterAgent(path) print 'Agent registered' mainloop = gobject.MainLoop() mainloop.run() #adapter.UnregisterAgent(path) #print 'Agent unregistered'