8 import dbus.mainloop.glib
10 from dbus.lowlevel import MethodCallMessage, HANDLER_RESULT_NOT_YET_HANDLED
12 mainloop = gobject.MainLoop()
14 def property_changed_adapter(name, value, path):
15 if name in ["Devices"]:
17 print "Lost device, exiting"
20 device_path = value[0]
22 print "Pairing with %s" % (device_path)
24 device = dbus.Interface(bus.get_object("org.neard", device_path), "org.neard.Device")
25 device.Push(({ "Type" : "Handover", "Carrier" : "bluetooth"}))
27 if __name__ == '__main__':
28 dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
30 bus = dbus.SystemBus()
32 bluez_manager = dbus.Interface(bus.get_object("org.bluez", "/"), "org.bluez.Manager")
34 bluez_adapter_path = bluez_manager.DefaultAdapter()
36 bluez_adapter = dbus.Interface(bus.get_object("org.bluez", bluez_adapter_path),
39 for bluez_path in bluez_adapter.ListDevices():
40 print("Removing %s" % (bluez_path))
41 bluez_adapter.RemoveDevice(bluez_path)
44 manager = dbus.Interface(bus.get_object("org.neard", "/"),
47 properties = manager.GetProperties()
48 device_path = properties["Adapters"][0]
49 adapter = dbus.Interface(bus.get_object("org.neard", device_path),
52 adapter_properties = adapter.GetProperties()
54 for key in adapter_properties.keys():
55 if key in ["Polling"]:
56 if adapter_properties[key] == dbus.Boolean(1):
57 print "Stoping poll on %s" % (device_path)
58 adapter.StopPollLoop()
60 print "Starting poll on %s" % (device_path)
61 adapter.StartPollLoop("Initiator")
63 bus.add_signal_receiver(property_changed_adapter,
65 dbus_interface="org.neard.Adapter",
66 signal_name = "PropertyChanged",