def start_service(self, name, port=None): if port is None: port = bluez_helper.get_available_port(self.address) socket = bluez_helper.BluetoothSocket() socket.bind((self.address, port)) socket.listen(1) print("Starting server for %s on port %i" % socket.getsockname()) bluez_helper.advertise_service(name, port) return socket
def main(): port = bluez_helper.get_available_port() socket = bluez_helper.BluetoothSocket() socket.bind((bluez_helper.BDADDR_ANY, port)) socket.listen(1) bluez_helper.advertise_service('hf', port) print("Waiting for connection on port", port) connection, address = socket.accept() print("Got connection:", address) t = Thread(target=print_loop, args=(connection,), daemon=True) t.start() while True: c = input().encode('latin-1') + b'\r\n' connection.send(c)
def _connect_hfp(address, port=None, control_chan=True, audio_chan=True): connection = None # Connect to RFCOMM control channel on HF (car kit) if control_chan: if port is None: port = bluez_helper.find_service("hf", address) print("HFP connecting to %s on port %i" % (address, port)) connection = bluez_helper.BluetoothSocket() time.sleep(0.5) connection.connect((address, port)) if audio_chan and hasattr(socket, "BTPROTO_SCO"): asock = socket.socket(socket.AF_BLUETOOTH, socket.SOCK_SEQPACKET, socket.BTPROTO_SCO) time.sleep(0.5) try: asock.connect(bytes(address, encoding="UTF-8")) except ConnectionRefusedError: print("Connection refused for audio socket") else: print("HFP SCO audio socket established") return connection