如何隐藏配对对话框以编程方式在Android上配对BLE设备?

时间:2019-06-17 07:53:24

标签: android bluetooth-lowenergy

我试图通过Android应用程序以编程方式配对BLE设备。因此首先我为PAIRING_REQUEST注册了BroadcastReceiver。当device.createBond()被调用时,会触发BroadcastReciever。触发BroadcastReciever时,我使用setpin()设置了密码。但是问题是配对请求对话框有时会出现,有时没有出现,配对框会自动完成。我希望它永远不会显示任何对话框,但应该以编程方式将其与密码配对。

有解决方案吗?

或者有什么办法可以满足我的期望? 预先感谢。

在应用程序启动期间注册了BroadCasterReciever

    IntentFilter intentFilter = new IntentFilter(BluetoothDevice.ACTION_PAIRING_REQUEST);
    intentFilter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
    appContext.getApplicationContext().registerReceiver(broadCastReceiver,intentFilter);

广播接收器的实现。

    private  String BLE_PIN= "000012";
    private BroadcastReceiver broadCastReceiver = new BroadcastReceiver() {
            public void onReceive(Context context, Intent intent) {
                String action = intent.getAction();
                if(BluetoothDevice.ACTION_PAIRING_REQUEST.equals(action))
                {
                    BluetoothDevice bluetoothDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
                    bluetoothDevice.setPin(BLE_PIN.getBytes());
                    Log.e("TAG","Auto-entering pin: " + BLE_PIN);

                }
           }
      };

发现设备后,我打电话给 device.createBond()

1 个答案:

答案 0 :(得分:0)

abortBroadcast();之后致电setPin()为我解决了这个问题。