Do not handle PAIRING_VARIANT_PIN
The user has to enter a pin in such cases. Since QBluetoothLocalDevice
does not have an API to return a pin it makes no sense for QtBluetooth
to handle this type of request. Android will provide its own fall back
form.
This patch is mostly a revert of f8c0572ddc.
Fixes: QTBUG-76565
Task-number: QTBUG-70295
Change-Id: I61062ac84ce508f3b82c7359a60d5c9c5bba86a4
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
This commit is contained in:
parent
4ac755bb6e
commit
263fc51863
|
|
@ -189,6 +189,14 @@ void LocalDeviceBroadcastReceiver::onReceive(JNIEnv *env, jobject context, jobje
|
||||||
return;
|
return;
|
||||||
case 0: //BluetoothDevice.PAIRING_VARIANT_PIN
|
case 0: //BluetoothDevice.PAIRING_VARIANT_PIN
|
||||||
{
|
{
|
||||||
|
qCDebug(QT_BT_ANDROID) << "Pairing : PAIRING_VARIANT_PIN -> use Android default handling";
|
||||||
|
|
||||||
|
// The section below is disabled because this Android pairing variant
|
||||||
|
// requires the user to enter a pin. Since QBluetoothLocalDevice does
|
||||||
|
// not have a setPin() equivalent which might be used to return the user's value.
|
||||||
|
// For now we ignore this request. If an app ignores such requests,
|
||||||
|
// Android shows a "fall-back" pin code entry form.
|
||||||
|
/*
|
||||||
//generate a random key
|
//generate a random key
|
||||||
const QString pin = QStringLiteral("%1").arg(QRandomGenerator::global()->bounded(1000000),
|
const QString pin = QStringLiteral("%1").arg(QRandomGenerator::global()->bounded(1000000),
|
||||||
6, 10, QLatin1Char('0'));
|
6, 10, QLatin1Char('0'));
|
||||||
|
|
@ -225,10 +233,12 @@ void LocalDeviceBroadcastReceiver::onReceive(JNIEnv *env, jobject context, jobje
|
||||||
}
|
}
|
||||||
|
|
||||||
const QBluetoothAddress address(bluetoothDevice.callObjectMethod<jstring>("getAddress").toString());
|
const QBluetoothAddress address(bluetoothDevice.callObjectMethod<jstring>("getAddress").toString());
|
||||||
emit pairingDisplayPinCode(address, pin);
|
emit pairingDisplayPinCode(address, pin);*/
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
case 2: //BluetoothDevice.PAIRING_VARIANT_PASSKEY_CONFIRMATION
|
case 2: //BluetoothDevice.PAIRING_VARIANT_PASSKEY_CONFIRMATION
|
||||||
{
|
{
|
||||||
|
qCDebug(QT_BT_ANDROID) << "Pairing : PAIRING_VARIANT_PASSKEY_CONFIRMATION";
|
||||||
keyExtra = valueForStaticField(JavaNames::BluetoothDevice,
|
keyExtra = valueForStaticField(JavaNames::BluetoothDevice,
|
||||||
JavaNames::ExtraPairingKey);
|
JavaNames::ExtraPairingKey);
|
||||||
key = intentObject.callMethod<jint>("getIntExtra",
|
key = intentObject.callMethod<jint>("getIntExtra",
|
||||||
|
|
|
||||||
|
|
@ -69,8 +69,6 @@ QBluetoothLocalDevicePrivate::QBluetoothLocalDevicePrivate(
|
||||||
this, &QBluetoothLocalDevicePrivate::processConnectDeviceChanges);
|
this, &QBluetoothLocalDevicePrivate::processConnectDeviceChanges);
|
||||||
connect(receiver, &LocalDeviceBroadcastReceiver::pairingDisplayConfirmation,
|
connect(receiver, &LocalDeviceBroadcastReceiver::pairingDisplayConfirmation,
|
||||||
this, &QBluetoothLocalDevicePrivate::processDisplayConfirmation);
|
this, &QBluetoothLocalDevicePrivate::processDisplayConfirmation);
|
||||||
connect(receiver, &LocalDeviceBroadcastReceiver::pairingDisplayPinCode,
|
|
||||||
this, &QBluetoothLocalDevicePrivate::processDisplayPinCode);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QBluetoothLocalDevicePrivate::~QBluetoothLocalDevicePrivate()
|
QBluetoothLocalDevicePrivate::~QBluetoothLocalDevicePrivate()
|
||||||
|
|
@ -206,15 +204,6 @@ void QBluetoothLocalDevicePrivate::processDisplayConfirmation(const QBluetoothAd
|
||||||
return;
|
return;
|
||||||
|
|
||||||
emit q_ptr->pairingDisplayConfirmation(address, pin);
|
emit q_ptr->pairingDisplayConfirmation(address, pin);
|
||||||
}
|
|
||||||
|
|
||||||
void QBluetoothLocalDevicePrivate::processDisplayPinCode(const QBluetoothAddress &address, const QString &pin)
|
|
||||||
{
|
|
||||||
// only send pairing notification for pairing requests issued by
|
|
||||||
// this QBluetoothLocalDevice instance
|
|
||||||
if (pendingPairing(address) == -1)
|
|
||||||
return;
|
|
||||||
|
|
||||||
emit q_ptr->pairingDisplayPinCode(address, pin);
|
emit q_ptr->pairingDisplayPinCode(address, pin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -113,7 +113,6 @@ private slots:
|
||||||
QBluetoothLocalDevice::Pairing pairing);
|
QBluetoothLocalDevice::Pairing pairing);
|
||||||
void processConnectDeviceChanges(const QBluetoothAddress &address, bool isConnectEvent);
|
void processConnectDeviceChanges(const QBluetoothAddress &address, bool isConnectEvent);
|
||||||
void processDisplayConfirmation(const QBluetoothAddress &address, const QString &pin);
|
void processDisplayConfirmation(const QBluetoothAddress &address, const QString &pin);
|
||||||
void processDisplayPinCode(const QBluetoothAddress &address, const QString &pin);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QBluetoothLocalDevice *q_ptr;
|
QBluetoothLocalDevice *q_ptr;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue