Я должен знать мощность сигнала подключения Bluetooth к удаленному устройству, которое я делаю со своим телефоном Android 2.1. От SDK я вижу, что могу определить RSSI в то время, когда я обнаруживаю удаленное устройство. Но я не вижу, как обновлять это значение RSSI со временем.
Кто-то может дать мне руку? Спасибо!!
Из SDK это единственный способ получить RSSI. Он немного неудобен, так как не пригодится, если вы хотите только периодически отслеживать силу сигнала сопряженного устройства.
Однако есть и другой способ, но вне SDK. Вы можете использовать родной API (с помощью NDK) и вызывать функции, предоставляемые Bluez API, базовым фреймворком bluetooth в Android (и почти любой linux системе). Речь идет о функции hci_read_rssi()
, предоставляемой libbluetooth.so
(часть стека Bluez). Чтобы узнать, как его использовать, вы можете посмотреть на Hcidump tool sources (поставляется с Bluez). Вы можете написать код-обертку JNI для своей функции, чтобы получить уровень сигнала сопряженного устройства.
Есть два недостатка использования этого метода:
hci_read_rssi()
. Это медленнее, чем просто измерять RSSI от маячков, как это делают другие средства беспроводной связи (GSM или WIFI)