BLE连接上的引脚请求

时间:2018-03-29 14:44:34

标签: java android bluetooth bluetooth-lowenergy

在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");
        }
    }
};

0 个答案:

没有答案