Как скрыть диалоговое окно сопряжения для программного сопряжения устройства BLE на Android? - PullRequest
1 голос
/ 17 июня 2019

Я пытался подключить устройство BLE программно из моего приложения для Android. Сначала я регистрирую BroadcastReceiver для PAIRING_REQUEST. Когда вызывается 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);

Реализация broadcastReciever.

    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 голосов
/ 18 июня 2019

звонит abortBroadcast(); после того, как setPin() решил проблему для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...