Bluetooth File Transfer¶
Pairing with Bluetooth device¶
To send files between two Bluetooth devices, they should be paired first. Use the bluetoothctl tool to manage the pairing.
Copy the MAC address, then approve pairing on the device if required.
For example, when pairing with a PC, do the following:
bluetoothctl
[NEW] Controller 96:93:E0:47:39:89 Variscite [default]
[bluetooth]# power on
[CHG] Controller 96:93:E0:47:39:89 Class: 0x300100
Changing power on succeeded
[CHG] Controller 96:93:E0:47:39:89 Powered: yes
[bluetooth]# pairable on
Changing pairable on succeeded
[bluetooth]# scan on
Discovery started
[CHG] Controller 96:93:E0:47:39:89 Discovering: yes
[bluetooth]# random: nonblocking pool is initialized
[NEW] Device B8:6C:E8:60:C0:8F Galaxy S5
[NEW] Device 00:1A:7D:DA:71:0B Ubuntu-PC
[bluetooth]# scan off
[CHG] Device 38:BC:1A:20:14:5D RSSI is nil
[CHG] Device 00:1A:7D:DA:71:0B RSSI is nil
[CHG] Device B8:6C:E8:60:C0:8F RSSI is nil
[CHG] Controller 96:93:E0:47:39:89 Discovering: no
Discovery stopped
[bluetooth]# pair 00:1A:7D:DA:71:0B
Attempting to pair with 00:1A:7D:DA:71:0B
[CHG] Device 00:1A:7D:DA:71:0B Connected: yes
[CHG] Device 00:1A:7D:DA:71:0B UUIDs: 00001104-0000-1000-8000-00805f9b34fb
[CHG] Device 00:1A:7D:DA:71:0B UUIDs: 00001105-0000-1000-8000-00805f9b34fb
[CHG] Device 00:1A:7D:DA:71:0B UUIDs: 00001106-0000-1000-8000-00805f9b34fb
[CHG] Device 00:1A:7D:DA:71:0B UUIDs: 0000110a-0000-1000-8000-00805f9b34fb
[CHG] Device 00:1A:7D:DA:71:0B UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
[CHG] Device 00:1A:7D:DA:71:0B UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
[CHG] Device 00:1A:7D:DA:71:0B UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Device 00:1A:7D:DA:71:0B UUIDs: 00001112-0000-1000-8000-00805f9b34fb
[CHG] Device 00:1A:7D:DA:71:0B UUIDs: 0000112f-0000-1000-8000-00805f9b34fb
[CHG] Device 00:1A:7D:DA:71:0B UUIDs: 00001132-0000-1000-8000-00805f9b34fb
[CHG] Device 00:1A:7D:DA:71:0B UUIDs: 00001133-0000-1000-8000-00805f9b34fb
[CHG] Device 00:1A:7D:DA:71:0B UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Device 00:1A:7D:DA:71:0B UUIDs: 00001800-0000-1000-8000-00805f9b34fb
[CHG] Device 00:1A:7D:DA:71:0B UUIDs: 00001801-0000-1000-8000-00805f9b34fb
[CHG] Device 00:1A:7D:DA:71:0B UUIDs: 00005005-0000-1000-8000-0002ee000001
[CHG] Device 00:1A:7D:DA:71:0B Paired: yes
Pairing successful
[CHG] Device 00:1A:7D:DA:71:0B Connected: no
[bluetooth]# trust 00:1A:7D:DA:71:0B
[CHG] Device 00:1A:7D:DA:71:0B Trusted: yes
Changing 00:1A:7D:DA:71:0B trust succeeded
[bluetooth]# quit
[DEL] Controller 96:93:E0:47:39:89 Variscite [default]
#
Sending files using OBEX Protocol¶
To send a file to a paired device, use the obexctl tool.
DBUS_SESSION_BUS_ADDRESS=unix:path=/var/run/dbus/system_bus_socket obexctl
connect <mac address>
send <file>
quit
When running the send command, remember to provide an absolute path.
For example, to send /etc/fstab file to a paired PC from the example above:
DBUS_SESSION_BUS_ADDRESS=unix:path=/var/run/dbus/system_bus_socket obexctl
[NEW] Client /org/bluez/obex
connect 00:1A:7D:DA:71:0B
Attempting to connect to 00:1A:7D:DA:71:0B
[NEW] Session /org/bluez/obex/client/session0 [default]
[NEW] ObjectPush /org/bluez/obex/client/session0
Connection successful
send /etc/fstab
Attempting to send /etc/fstab to /org/bluez/obex/client/session0
[NEW] Transfer /org/bluez/obex/client/session0/transfer0
Transfer /org/bluez/obex/client/session0/transfer0
Status: queued
Name: fstab
Size: 637
Filename: /etc/fstab
Session: /org/bluez/obex/client/session0
[CHG] Transfer /org/bluez/obex/client/session0/transfer0 Status: complete
[DEL] Transfer /org/bluez/obex/client/session0/transfer0
Receiving files using OBEX Protocol¶
No special action is required to receive a file that was sent from a paired device. The file will be stored under /tmp/bluetooth-inbox.