В моем приложении я пытаюсь реагировать на ситуацию, когда Bluetooth (BT) моего устройства отключен.ACTION_BOND_STATE_CHANGED (отметьте этот и этот ответы), тем не менее, кажется, сообщается, когда другое устройство, подключенное к моему телефону, отключено или выключено, по крайней мере, в моем случае.Если я регистрирую ACTION_ACL_DISCONNECTED и затем выключаю мои устройства BT, то вызывается onReceive ().
init {
fetchDevices()
val mBTPairedReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val action = intent.action
val device = intent.getParcelableExtra<Parcelable>(BluetoothDevice.EXTRA_DEVICE)
val previousStates = intent.getIntExtra(BluetoothDevice.EXTRA_PREVIOUS_BOND_STATE, BluetoothAdapter.ERROR)
val states = intent.getIntExtra(BluetoothDevice.EXTRA_BOND_STATE, BluetoothAdapter.ERROR)
when (action) {
BluetoothDevice.ACTION_FOUND -> if (device != null) {
fetchDevices()
deviceListener?.let { it(devices) }
}
BluetoothDevice.ACTION_BOND_STATE_CHANGED -> {
when (states) {
BluetoothAdapter.STATE_TURNING_OFF -> {
Log.d("MESSAGE", "BT is turning OFF")
}
BluetoothAdapter.STATE_ON -> Log.d("MESSAGE", "BT is ON now")
}
}
}
}
}
application.registerReceiver(mBTPairedReceiver, IntentFilter(BluetoothDevice.ACTION_BOND_STATE_CHANGED))
}
Я хочу получить информацию о том, будет ли BT отключен / отключен на моем устройстве, чтобы я мог отправить окончательное сообщение на другое устройство, к которому я подключен, перед тем, как потерять соединение.