#!/usr/bin/python # -*- coding: utf-8 -*- import dbus import dbus.service import gobject from dbus.mainloop.glib import DBusGMainLoop import sys DBusGMainLoop(set_as_default=True) loop = gobject.MainLoop() bus = dbus.SystemBus() hdp_manager = dbus.Interface(bus.get_object("org.bluez", "/org/bluez"), "org.bluez.HealthManager") app_path = hdp_manager.CreateApplication({"DataType": dbus.types.UInt16(4103), "Role": "sink"}) print app_path manager = dbus.Interface(bus.get_object("org.bluez", "/"), "org.bluez.Manager") adapters = manager.ListAdapters() i = 1 for ad in adapters: print "%d. %s" % (i, ad) i = i + 1 print "Select an adapter: ", select = None while select == None: try: pos = int(sys.stdin.readline()) - 1 if pos < 0: raise TypeError select = adapters[pos] except (TypeError, IndexError, ValueError): print "Wrong selection, try again: ", except KeyboardInterrupt: sys.exit() adapter = dbus.Interface(bus.get_object("org.bluez", select), "org.bluez.Adapter") devices = adapter.ListDevices() if len(devices) == 0: print "No devices available" sys.exit() i = 1 for dev in devices: print "%d. %s" % (i, dev) i = i + 1 print "Select a device: ", select = None while select == None: try: pos = int(sys.stdin.readline()) - 1 if pos < 0: raise TypeError select = devices[pos] except (TypeError, IndexError, ValueError): print "Wrong selection, try again: ", except KeyboardInterrupt: sys.exit() print "Connecting to %s" % (select) device = dbus.Interface(bus.get_object("org.bluez", select), "org.bluez.HealthDevice") chan = device.CreateChannel(app_path, "Any") print chan print "Push Enter for finishing" sys.stdin.readline() hdp_manager.DestroyApplication(app_path)