from __future__ import absolute_import, print_function, unicode_literals
-from gi.repository import GObject
-
import dbus
import dbus.mainloop.glib
+try:
+ from gi.repository import GObject
+except ImportError:
+ import gobject as GObject
+import bluezutils
-def adapter_added(path):
- print("Adapter with path %s added" % (path))
-
-def adapter_removed(path):
- print("Adapter with path %s removed" % (path))
+def interfaces_added(path, interfaces):
+ if interfaces.get("org.bluez.Adapter1") != None:
+ print("Adapter with path %s added" % (path))
-def default_changed(path):
- print("Default adapter is now at path %s" % (path))
+def interfaces_removed(path, interfaces):
+ if "org.bluez.Adapter1" in interfaces:
+ print("Adapter with path %s removed" % (path))
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')
-
- manager.connect_to_signal("AdapterAdded", adapter_added)
-
- manager.connect_to_signal("AdapterRemoved", adapter_removed)
+ bus.add_signal_receiver(interfaces_added, bus_name="org.bluez",
+ dbus_interface="org.freedesktop.DBus.ObjectManager",
+ signal_name="InterfacesAdded")
- manager.connect_to_signal("DefaultAdapterChanged", default_changed)
+ bus.add_signal_receiver(interfaces_removed, bus_name="org.bluez",
+ dbus_interface="org.freedesktop.DBus.ObjectManager",
+ signal_name="InterfacesRemoved")
try:
- path = manager.DefaultAdapter()
- default_changed(path)
+ path = bluezutils.find_adapter().object_path
+ print("Adapter found at path %s" % (path))
except:
- pass
+ print("No adapter found")
mainloop = GObject.MainLoop()
mainloop.run()