Я создал отдельный класс приемника Bluetooth, который проверяет BluetoothDevice.ACTION_ACL_CONNECTED и на основании этого я должен получать сообщение в журналах, хотя это не так. Все необходимые разрешения включены, класс получателя правильно инициируется в MainActivity, но ответа нет. В чем может быть проблема?
Код: Выделить всё
class BluetoothReceiver(
private val onBluetoothConnected: () -> Unit,
private val onBluetoothDisconnected: () -> Unit,
) : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
Log.d("BluetoothReceiver", "Received intent: ${intent.action}")
when (intent.action) {
BluetoothDevice.ACTION_ACL_CONNECTED -> {
Log.d("BluetoothReceiver", "Bluetooth device connected")
onBluetoothConnected()
}
BluetoothDevice.ACTION_ACL_DISCONNECTED -> {
Log.d("BluetoothReceiver", "Bluetooth device disconnected")
onBluetoothDisconnected()
}
}
}
}
Код: Выделить всё
override fun onStart() {
super.onStart()
val filter = IntentFilter().apply {
addAction(BluetoothDevice.ACTION_ACL_CONNECTED)
addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED)
}
registerReceiver(bluetoothReceiver, filter)
}
override fun onStop() {
super.onStop()
unregisterReceiver(bluetoothReceiver)
}
private fun setupBluetoothReceiver(): BluetoothReceiver {
return BluetoothReceiver(
onBluetoothConnected = { toggleSilentMode(true) },
onBluetoothDisconnected = { toggleSilentMode(false) }
)
}
Подробнее здесь: https://stackoverflow.com/questions/783 ... on-android