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;
|
||||
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
|
||||
const QString pin = QStringLiteral("%1").arg(QRandomGenerator::global()->bounded(1000000),
|
||||
6, 10, QLatin1Char('0'));
|
||||
|
|
@ -225,10 +233,12 @@ void LocalDeviceBroadcastReceiver::onReceive(JNIEnv *env, jobject context, jobje
|
|||
}
|
||||
|
||||
const QBluetoothAddress address(bluetoothDevice.callObjectMethod<jstring>("getAddress").toString());
|
||||
emit pairingDisplayPinCode(address, pin);
|
||||
emit pairingDisplayPinCode(address, pin);*/
|
||||
break;
|
||||
}
|
||||
case 2: //BluetoothDevice.PAIRING_VARIANT_PASSKEY_CONFIRMATION
|
||||
{
|
||||
qCDebug(QT_BT_ANDROID) << "Pairing : PAIRING_VARIANT_PASSKEY_CONFIRMATION";
|
||||
keyExtra = valueForStaticField(JavaNames::BluetoothDevice,
|
||||
JavaNames::ExtraPairingKey);
|
||||
key = intentObject.callMethod<jint>("getIntExtra",
|
||||
|
|
|
|||
|
|
@ -69,8 +69,6 @@ QBluetoothLocalDevicePrivate::QBluetoothLocalDevicePrivate(
|
|||
this, &QBluetoothLocalDevicePrivate::processConnectDeviceChanges);
|
||||
connect(receiver, &LocalDeviceBroadcastReceiver::pairingDisplayConfirmation,
|
||||
this, &QBluetoothLocalDevicePrivate::processDisplayConfirmation);
|
||||
connect(receiver, &LocalDeviceBroadcastReceiver::pairingDisplayPinCode,
|
||||
this, &QBluetoothLocalDevicePrivate::processDisplayPinCode);
|
||||
}
|
||||
|
||||
QBluetoothLocalDevicePrivate::~QBluetoothLocalDevicePrivate()
|
||||
|
|
@ -206,15 +204,6 @@ void QBluetoothLocalDevicePrivate::processDisplayConfirmation(const QBluetoothAd
|
|||
return;
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -113,7 +113,6 @@ private slots:
|
|||
QBluetoothLocalDevice::Pairing pairing);
|
||||
void processConnectDeviceChanges(const QBluetoothAddress &address, bool isConnectEvent);
|
||||
void processDisplayConfirmation(const QBluetoothAddress &address, const QString &pin);
|
||||
void processDisplayPinCode(const QBluetoothAddress &address, const QString &pin);
|
||||
|
||||
private:
|
||||
QBluetoothLocalDevice *q_ptr;
|
||||
|
|
|
|||
Loading…
Reference in New Issue