diff options
-rw-r--r-- | hcid/Makefile.am | 2 | ||||
-rwxr-xr-x | hcid/simple-agent | 47 |
2 files changed, 48 insertions, 1 deletions
diff --git a/hcid/Makefile.am b/hcid/Makefile.am index dda695b6..638a7524 100644 --- a/hcid/Makefile.am +++ b/hcid/Makefile.am @@ -58,7 +58,7 @@ AM_YFLAGS = -d CLEANFILES = lexer.c parser.c parser.h EXTRA_DIST = hcid.8 hcid.conf.5 hcid.conf dbus-api.txt \ - list-devices test-device service-record.dtd \ + list-devices test-device simple-agent service-record.dtd \ service-did.xml service-spp.xml service-opp.xml service-ftp.xml MAINTAINERCLEANFILES = Makefile.in diff --git a/hcid/simple-agent b/hcid/simple-agent new file mode 100755 index 00000000..d6cc9482 --- /dev/null +++ b/hcid/simple-agent @@ -0,0 +1,47 @@ +#!/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='', out_signature='') + def Cancel(self): + print("Cancel") + +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") |