Обнаружение сопряжения Bluetooth на AndroidAndroid

Форум для тех, кто программирует под Android
Anonymous
Обнаружение сопряжения Bluetooth на Android

Сообщение Anonymous »

Я пытаюсь создать функцию, которая определяет, подключен ли ваш телефон к другому устройству через Bluetooth, будь то наушники, автомобиль, другой телефон и т. д. И если устройство обнаружено, должен быть ответ. >
Я создал отдельный класс приемника 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) }
)
}
Для контекста toggleSilentMode — это метод, который включает режим «Не беспокоить» на смартфоне и выполняет некоторые другие визуальные изменения.

Подробнее здесь: https://stackoverflow.com/questions/783 ... on-android

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