Add initial bluetooth backend implementation.

Review Request #122174 - Created Jan. 20, 2015 and submitted

Saikrishna Arcot

Add initial bluetooth backend implementation.

This is based on the frameworks branch.

The getPairedDevices() method in the link provider class uses D-Bus to get the list of paired devices, since Qt doesn't have a method giving that information. As a result, that part of the code only works on Linux.

KDE Connect runs, and the bluetooth service gets published in the SDP (service discovery protocol), which other devices use to determine what services are available.

For me, sending a pair request from KDE to Android results in KDE Connect crashing on Android. It seems it's because the VIBRATE permission is necessary, which I've added on the Android side. In addition, the pairing data doesn't seem to be stored on the KDE side. Not sure if I'm missing something or not.

Android as client and KDE as server

BlueZ 4 and Qt 5.3

My Android (4.1.2) sees the KDE connect service and tries to connect to it, but fails most of the time. Sometimes, it succeeds and creates a connection. I haven't been able to find out why it's failing the rest of the time. Newer versions of Android (4.2 and higher) might have better luck, since the Bluetooth code was changed.

When it does connect, one time, I was able to pair the devices together (from my Android), and was able to send a ping, use the touchpad, and control my media player from my Android.

BlueZ 4 and Qt 5.4

Not tested.

BlueZ 5 and Qt 5.4

My Android sees and at least tries to connect to the KDE connect service. Sometimes, it's successful, sometimes, it fails.

Android as server and KDE as client (all versions)

I was able to successfully connect to the Android and use it.

Saikrishna Arcot
Saikrishna Arcot
Saikrishna Arcot
Saikrishna Arcot
Saikrishna Arcot
Albert Vaca Cintora
Albert Vaca Cintora
Saikrishna Arcot
Review request changed

Status: Closed (submitted)

Change Summary:

Submitted with commit d711547ab59cee736d26b815cd745087ce00cf8f by Àlex Fiestas on behalf of Saikrishna Arcot to branch master.