+#!/usr/bin/python
+
+import os
+import sys
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+import neardutils
+
+from dbus.lowlevel import MethodCallMessage, HANDLER_RESULT_NOT_YET_HANDLED
+
+mainloop = gobject.MainLoop()
+
+def device_added(path, interfaces):
+ for iface, props in interfaces.iteritems():
+ if "org.neard.Device" in interfaces:
+ print("Pairing with %s" % (path))
+ device = dbus.Interface(bus.get_object("org.neard", path),
+ "org.neard.Device")
+ device.Push(({ "Type" : "MIME", "MIME" : "x/nfctl"}))
+ break
+
+def device_removed(path, interfaces):
+ for iface in interfaces:
+ if "org.neard.Device" in interfaces:
+ print("Lost device %s" % (path))
+ mainloop.quit()
+ break
+
+if __name__ == '__main__':
+ dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
+
+ bus = dbus.SystemBus()
+
+ adapter_path = neardutils.find_adapter().object_path
+ print("Adapter path %s" % (adapter_path))
+ adapter = dbus.Interface(bus.get_object("org.neard", adapter_path),
+ "org.neard.Adapter")
+
+ adapter_props = dbus.Interface(bus.get_object("org.neard", adapter_path),
+ "org.freedesktop.DBus.Properties")
+ powered = adapter_props.Get("org.neard.Adapter", "Powered")
+ if (powered == dbus.Boolean(0)):
+ adapter_props.Set("org.neard.Adapter", "Powered", dbus.Boolean(1))
+
+ polling = adapter_props.Get("org.neard.Adapter", "Polling")
+ if (polling == dbus.Boolean(0)):
+ adapter.StopPollLoop()
+
+ print "Starting poll on %s" % (adapter_path)
+ adapter.StartPollLoop("Initiator")
+
+ bus.add_signal_receiver(device_added, bus_name="org.neard",
+ dbus_interface="org.freedesktop.DBus.ObjectManager",
+ signal_name="InterfacesAdded")
+
+ bus.add_signal_receiver(device_removed, bus_name="org.neard",
+ dbus_interface="org.freedesktop.DBus.ObjectManager",
+ signal_name="InterfacesRemoved")
+
+ mainloop.run()