Трансляция Bluetooth (BLE) ACL_CONNECTED не осуществляется на некоторых устройствах с версией ble 5.2.Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Трансляция Bluetooth (BLE) ACL_CONNECTED не осуществляется на некоторых устройствах с версией ble 5.2.

Сообщение Anonymous »

Я работаю с Android ble, я столкнулся с одной проблемой: мне приходится повторно подключаться к серверу и показывать статус в приложении, когда клиентское устройство уже было сопряжено или сервер присутствует в связанном списке и перемещен выходит из зоны действия и возвращается обратно.
Я видел в большинстве телефонов, когда я выхожу за пределы зоны действия и возвращаюсь обратно, я получаю трансляцию от системы о том, что она подключилась, и мы запускаем подключение и показывать статус в приложении;
Но некоторые устройства не отправляют эту трансляцию и при повторных попытках выдают ошибку 133 GATT.

Код: Выделить всё

val filter = IntentFilter().apply {
addAction(BluetoothAdapter.ACTION_STATE_CHANGED)
addAction(BluetoothDevice.ACTION_ACL_CONNECTED)
addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED)
addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED)
addAction(Intent.ACTION_BOOT_COMPLETED)
addAction(Intent.ACTION_MY_PACKAGE_REPLACED)
}
registerReceiver(BleBroadCastReceiver, filter)
Наша логика заключается в бесконечных повторах с задержкой 200 мс, и если мы получим ошибку 133 GATT, мы попытаемся 3 раза с задержкой в ​​1 секунду, затем прекратим повторное подключение и дождемся точки срабатывания. из системы.

Код: Выделить всё

Samsung Galaxy S20 FE
каждый раз дает точность главных часов = 1 ble версии 5.0

Код: Выделить всё

Xiaomi M11X
дает каждый раз, но с задержкой. Точность главных часов = 5 ble версии 5.1.

Код: Выделить всё

Oneplus Nord 2 5G
не передает широковещательную рассылку: версия 5.2
автоподключение как ложное
Можете ли вы помочь мне узнать, почему я этого не делаю? не получаете обратные вызовы или системные широковещательные сообщения?
На всех этих устройствах я получаю широковещательные сообщения для включения/выключения Bluetooth, но не для автоматического повторного подключения.

Код: Выделить всё

object BleBroadCastReceiver : BroadcastReceiver() {

override fun onReceive(context: Context?, intent: Intent?) {
if (BuildConfig.DEBUG) {
Log.d(
"BleBroadcast",
"OnRecieve BleBroadCastReceiver $intent"
)
}
}
}
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/788 ... -ble-versi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ошибка ACL Spring Security Невозможно найти информацию ACL для идентификации объекта
    Anonymous » » в форуме JAVA
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • Simple_salesforce Python Connected App Sandbox
    Anonymous » » в форуме Python
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • Потоковая трансляция аудиофайла на мобильных устройствах
    Anonymous » » в форуме Android
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Потоковая трансляция аудиофайла на мобильных устройствах
    Anonymous » » в форуме Android
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Есть ли работающее решение для фоновой загрузки BLE Bluetooth на устройствах iOS?
    Anonymous » » в форуме IOS
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»