Я видел в большинстве телефонов, когда я выхожу за пределы зоны действия и возвращаюсь обратно, я получаю трансляцию от системы о том, что она подключилась, и мы запускаем подключение и показывать статус в приложении;
Но некоторые устройства не отправляют эту трансляцию и при повторных попытках выдают ошибку 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)
Код: Выделить всё
Samsung Galaxy S20 FE
Код: Выделить всё
Xiaomi M11X
Код: Выделить всё
Oneplus Nord 2 5G
автоподключение как ложное
Можете ли вы помочь мне узнать, почему я этого не делаю? не получаете обратные вызовы или системные широковещательные сообщения?
На всех этих устройствах я получаю широковещательные сообщения для включения/выключения 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