rfcomm command
Not logged in

rfcomm command


rfcomm - transfer data over Bluetooth serial port profile; akin to the Tcl socket command.


package require Rfcomm
rfcomm ?-myaddr addr? ?-myport myport? ?-async? host port
rfcomm -server command ?-myaddr addr? port


This command is used to obtain a channel which is able to transfer data over Bluetooth's serial port profile (SPP or SP). The arguments are nearly identical to the Tcl socket command. It returns a client or server channel handle. Client channels may be used with gets, read, puts, fconfigure, and close. Server channels return a new client channel in the command callback when an incoming connection was established.

For client channels (first command form), the host parameter must be given as a one- or two-element list: the first element is the Bluetooth address of the remote device, and the (optional) second element is the UUID of the remote service. If omitted the standard Bluetooth UUID for the Serial Port Profile 00001101-0000-1000-8000-00805F9B34FB is used. The non-blocking connection mode (-async specified) uses readability of the channel to indicate connection state. This is different to normal socket channels, where writability provides this information. On Android, the local address of the client socket specified in the optional addr parameter is ignored.

For server channels, the first element of the addr parameter is the UUID for the local SDP (Service Discovery Protocol) record, i.e. the application identifier, and the optional second element is the friendly name of the service as advertised over SDP. On some Android versions the friendly name may not be an empty string, otherwise incoming connection requests are not fulfilled. The port parameter is usually ignored and should be specified as 0.