After some struggle, I finally managed to connect my SBH20 Bluetooth headset with my Thinkpad X250 running Arch Linux. But the headset refuses to switch to A2DP profile, instead, it only wants to work in HSP/HFP profile, leaving error message:

Failed to set card profile to 'a2dp_sink'

The result is that I can only hear the crappy sound.

After some digging into Arch Wiki, I found that the cause could be GDM grabbing A2DP sink via its own PulseAudio instance. The solution, found here, is to prevent GDM from starting its PulseAudio instance: Create the file /var/lib/gdm/.pulse/client.conf with following content:

autospawn = no
daemon-binary = /bin/true

And don’t forget to change the owner:

chown -R gdm:gdm /var/lib/gdm/.pulse

After a reboot, the A2DP profile on my SBH20 is successfully enabled.