在Native Android中,我正在尝试连接到BLE设备。
我正在使用setPin()函数,它可以工作。 但是,我仍然看到用户输入引脚的对话框和键盘弹出:
“蓝牙配对请求输入PIN以配对设备。”
我尝试了各种解决方案,我在SO和其他地方找到了这些解决方案,但没有运气。
它将弹出并保持直到“取消”被击中或者您在提示之外点击,或者有时它会在消失之前仅瞬间弹出一瞬间。 但无论哪种方式,设备已经连接并且功能正常。
非常感谢有关如何正确压制此对话框的任何想法!
private BroadcastReceiver pairing_receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
String action = intent.getAction();
if (action.equals("android.bluetooth.device.action.PAIRING_REQUEST")) {
//Log.d(filter, name + ": PAIRING_REQUEST");
// must call this function to trigger a PAIRING_VARIANT_PIN callback
if (!device.setPairingConfirmation(true)) { Log.d(APP_TAG, "ERROR: setPairingConfirmation"); }
int type = intent.getIntExtra(BluetoothDevice.EXTRA_PAIRING_VARIANT, BluetoothDevice.ERROR);
if (type == BluetoothDevice.PAIRING_VARIANT_PIN) {
//Log.d(filter, name + ": PAIRING_VARIANT_PIN");
if (!device.setPin(pin())) { Log.d(APP_TAG, name + ": ERROR setPin"); }
} else if (type == BluetoothDevice.PAIRING_VARIANT_PASSKEY_CONFIRMATION) {
//Log.d(filter, name + ": PAIRING_VARIANT_PASSKEY_CONFIRMATION");
} else {
//Log.d(filter, name + ": UNKNOWN PAIRING TYPE = " + type);
}
} else {
//Log.d(filter, name + ": UNKNOWN PAIRING ACTION");
}
}
};