1 #!/usr/bin/python 2 3 import sys 4 import time 5 import dbus 6 7 xml = ' \ 8 <?xml version="1.0" encoding="UTF-8" ?> \ 9 <record> \ 10 <attribute id="0x0001"> \ 11 <sequence> \ 12 <uuid value="0x1101"/> \ 13 </sequence> \ 14 </attribute> \ 15 \ 16 <attribute id="0x0002"> \ 17 <uint32 value="0"/> \ 18 </attribute> \ 19 \ 20 <attribute id="0x0003"> \ 21 <uuid value="00001101-0000-1000-8000-00805f9b34fb"/> \ 22 </attribute> \ 23 \ 24 <attribute id="0x0004"> \ 25 <sequence> \ 26 <sequence> \ 27 <uuid value="0x0100"/> \ 28 </sequence> \ 29 <sequence> \ 30 <uuid value="0x0003"/> \ 31 <uint8 value="23"/> \ 32 </sequence> \ 33 </sequence> \ 34 </attribute> \ 35 \ 36 <attribute id="0x0005"> \ 37 <sequence> \ 38 <uuid value="0x1002"/> \ 39 </sequence> \ 40 </attribute> \ 41 \ 42 <attribute id="0x0006"> \ 43 <sequence> \ 44 <uint16 value="0x656e"/> \ 45 <uint16 value="0x006a"/> \ 46 <uint16 value="0x0100"/> \ 47 </sequence> \ 48 </attribute> \ 49 \ 50 <attribute id="0x0007"> \ 51 <uint32 value="0"/> \ 52 </attribute> \ 53 \ 54 <attribute id="0x0008"> \ 55 <uint8 value="0xff"/> \ 56 </attribute> \ 57 \ 58 <attribute id="0x0009"> \ 59 <sequence> \ 60 <sequence> \ 61 <uuid value="0x1101"/> \ 62 <uint16 value="0x0100"/> \ 63 </sequence> \ 64 </sequence> \ 65 </attribute> \ 66 \ 67 <attribute id="0x000a"> \ 68 <url value="http://www.bluez.org/"/> \ 69 </attribute> \ 70 \ 71 <attribute id="0x000b"> \ 72 <url value="http://www.bluez.org/"/> \ 73 </attribute> \ 74 \ 75 <attribute id="0x000c"> \ 76 <url value="http://www.bluez.org/"/> \ 77 </attribute> \ 78 \ 79 <attribute id="0x0100"> \ 80 <text value="Serial Port"/> \ 81 </attribute> \ 82 \ 83 <attribute id="0x0101"> \ 84 <text value="Serial Port Service"/> \ 85 </attribute> \ 86 \ 87 <attribute id="0x0102"> \ 88 <text value="BlueZ"/> \ 89 </attribute> \ 90 \ 91 <attribute id="0x0200"> \ 92 <sequence> \ 93 <uint16 value="0x0100"/> \ 94 </sequence> \ 95 </attribute> \ 96 \ 97 <attribute id="0x0201"> \ 98 <uint32 value="0"/> \ 99 </attribute> \ 100 </record> \ 101 ' 102 103 bus = dbus.SystemBus() 104 manager = dbus.Interface(bus.get_object("org.bluez", "/"), 105 "org.bluez.Manager") 106 107 if len(sys.argv) > 1: 108 path = manager.FindAdapter(sys.argv[1]) 109 else: 110 path = manager.DefaultAdapter() 111 112 service = dbus.Interface(bus.get_object("org.bluez", path), 113 "org.bluez.Service") 114 115 handle = service.AddRecord(xml) 116 117 print "Service record with handle 0x%04x added" % (handle) 118 119 print "Press CTRL-C to remove service record" 120 121 try: 122 time.sleep(1000) 123 print "Terminating session" 124 except: 125 pass 126 127 service.RemoveRecord(dbus.UInt32(handle)) 128