BLE: try to enable on iOS

We can't use the localBtDevice on iOS, so hack around that and go straight to
discovery.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2017-09-23 15:05:08 -07:00
parent 38243be44d
commit dd14e27820
2 changed files with 8 additions and 7 deletions

View file

@ -71,17 +71,20 @@ void BTDiscovery::BTDiscoveryReDiscover()
localBtDevice.hostMode() == QBluetoothLocalDevice::HostConnectable) {
btPairedDevices.clear();
qDebug() << "localDevice " + localBtDevice.name() + " is valid, starting discovery";
m_btValid = true;
#else
m_btValid = false;
// for iOS we can't use the localBtDevice as iOS is BLE only
// we need to find some other way to test if Bluetooth is enabled, though
// for now just hard-code it
if (1) {
#endif
m_btValid = true;
#if defined(Q_OS_IOS) || (defined(Q_OS_LINUX) && !defined(Q_OS_ANDROID))
discoveryAgent = new QBluetoothDeviceDiscoveryAgent(this);
connect(discoveryAgent, &QBluetoothDeviceDiscoveryAgent::deviceDiscovered, this, &BTDiscovery::btDeviceDiscovered);
qDebug() << "starting BLE discovery";
discoveryAgent->start();
#endif
#if defined(Q_OS_ANDROID) && defined(BT_SUPPORT)
#if defined(Q_OS_ANDROID)
getBluetoothDevices();
// and add the paired devices to the internal data
// So behaviour is same on Linux/Bluez stack and
@ -100,12 +103,10 @@ void BTDiscovery::BTDiscoveryReDiscover()
connect(&timer, &QTimer::timeout, discoveryAgent, &QBluetoothDeviceDiscoveryAgent::stop);
timer.start(3000);
#endif
#if !defined(Q_OS_IOS)
} else {
qDebug() << "localBtDevice isn't valid";
qDebug() << "localBtDevice isn't valid or not connectable";
m_btValid = false;
}
#endif
}
BTDiscovery::~BTDiscovery()

View file

@ -59,7 +59,7 @@ void run_ui()
QQmlApplicationEngine engine;
KirigamiPlugin::getInstance().registerTypes();
#if __APPLE__
#if defined(__APPLE__) && !defined(Q_OS_IOS)
// when running the QML UI on a Mac the deployment of the QML Components seems
// to fail and the search path for the components is rather odd - simply the
// same directory the executable was started from <bundle>/Contents/MacOS/