Как я могу избежать или отклонить уведомление Android о сопряжении Bluetooth, когда я выполняю программное сопряжение?

У меня есть приложение, в котором я программно управляю сопряжением и отключением Bluetooth. Я могу выполнить сопряжение перед подключением и разорвать пару после этого. Причина, по которой мне нужно это сделать, специфична для моего приложения, а не в рамках моего вопроса.

В основном я делаю следующее:

  1. Получите ссылку ib на объект IBluetooth , как описано в этом ответе
  2. Зарегистрируйте BroadcastReceiver для android.bluetooth.device.action.PAIRING_REQUEST
  3. Вызов ib.createBond (адрес)
  4. Дождитесь срабатывания BroadcastReceiver
  5. Преобразуйте контакт пользователя в байты с помощью convertPinToBytes ()
  6. Вызов ib.setPin (address, pinBytes) из BroadcastReceiver

В любом случае, этот подход отлично работает, за исключением того факта, что когда я выполняю сопряжение, я получаю уведомление в строке состояния с просьбой ввести пользователя PIN-код для завершения сопряжения. Но на самом деле в этом нет необходимости, потому что к тому моменту, когда пользователь это увидит, мое приложение уже использовало setPin () . Я бы очень хотел, чтобы это уведомление а) не отображалось вообще или б) как-то автоматически отклонялось.

Я понимаю, что это может быть даже невозможно, но я подумал, что спрошу, если у кого-то возникнет творческая идея.

43
задан Community 23 May 2017 в 12:26
поделиться