#kotlin #android-bluetooth #rssi
Вопрос:
Я боролся с Bluetooth на Android в Котлине в общей сложности около двух недель. Я получил довольно много способов, но я пытаюсь сделать одну последнюю вещь. Я хотел бы читать RSSI классического устройства Bluetooth примерно каждую секунду. Я знаю, что могу получить RSSI во время открытия:
private val bluetoothDiscoveryResult = object : BroadcastReceiver()
{
override fun onReceive(context: Context?, intent: Intent?)
{
if (intent?.action == BluetoothDevice.ACTION_FOUND)
{
val device: BluetoothDevice =
intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE)!!
val rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI, Short.MIN_VALUE)
.toInt()
val name = device.name
Log.i(
"Discovery",
"Action: ${intent?.action} Device: ${device.name} ${device.address}" " "
"Signal Strength:$rssi)")
}
}
}
private fun beginDiscovery() {
registerReceiver(bluetoothDiscoveryResult, IntentFilter(BluetoothDevice.ACTION_FOUND))
bluetoothAdapter.startDiscovery()
}
но это слишком медленно. Насколько мне известно, я не могу использовать BluetoothGattCallback().onReadRemoteRssi, так как это классическое устройство.
Возможно ли это вообще?