1 #!/usr/bin/python 2 3 import gobject 4 5 import dbus 6 import dbus.mainloop.glib 7 8 def device_found(address, properties): 9 print "[ " + address + " ]" 10 11 for key in properties.keys(): 12 value = properties[key] 13 if (key == "Class"): 14 print " %s = 0x%06x" % (key, value) 15 else: 16 print " %s = %s" % (key, value) 17 18 def property_changed(name, value): 19 if (name == "Discovering" and not value): 20 mainloop.quit() 21 22 if __name__ == '__main__': 23 dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) 24 25 bus = dbus.SystemBus() 26 manager = dbus.Interface(bus.get_object("org.bluez", "/"), 27 "org.bluez.Manager") 28 29 path = manager.DefaultAdapter() 30 adapter = dbus.Interface(bus.get_object("org.bluez", path), 31 "org.bluez.Adapter") 32 33 bus.add_signal_receiver(device_found, 34 dbus_interface = "org.bluez.Adapter", 35 signal_name = "DeviceFound") 36 37 bus.add_signal_receiver(property_changed, 38 dbus_interface = "org.bluez.Adapter", 39 signal_name = "PropertyChanged") 40 41 adapter.StartDiscovery() 42 43 mainloop = gobject.MainLoop() 44 mainloop.run() 45