Motorola XT910 считывает rssi, равное 0, из тегов Bluetooth с низким энергопотреблением ticc2540,ticc2541, синих тегов радио
Я разрабатываю приложение для Android, работающее на Motorola RAZR XT910 с версией ОС 4.0.4.
Это приложение использует библиотеки Motorola_ICS_R2_sdkaddon_100 BluetoothGattService.jar и BluetoothGatt.jar и взаимодействует с тегами Bluetooth с низким энергопотреблением (TI CC2540,TI CC2541,Blue Radios Sensor Tags).
На процедуре обнаружения я всегда читаю значение rssi, равное 0. Я использую следующий код, чтобы прочитать значение rssi при получении Intent BluetoothDevice.ACTION_FOUND:
short rssi = intent.getShortExtra (BluetoothDevice.EXTRA_RSSI, (short) 0);
Также для устройств с низким энергопотреблением Bluetooth, значение rssi, которое я прочитал, в порядке (не равно 0).
Может кто-нибудь мне помочь??
Спасибо
2 ответа
Я нашел похожую проблему на сайте обсуждения TI для использования специфичного для Vender запроса для RSSI. Кажется, что он работает для Classic BT, но возвращает код ошибки 2 для BLE.
http://e2e.ti.com/support/low_power_rf/f/660/t/289391.aspx
Это может быть фундаментальный предел, что вы не можете получить значение. В вашем случае getShortExtra
может не вернуть код ошибки (2) и просто вернуть 0 как RSSI.
Я не знаю, поможет ли это вам, так как я испытываю ту же проблему.
RSSI от Bluetooth Low Energy (BLE) Метки?
Эта ссылка объясняет больше о RSSI и рекламе в устройстве BLE. Кажется, что традиционные RSSI для не-BLE-устройств кодируются по-разному.
Для получения дополнительной информации страница 50 описывает onLEScan вызова Android 4.3. Возвращает RSSI здесь. Поэтому я не думаю, что вы сможете получить правильный RSSI, если не используете Android 4.3 (18) BLE API. http://commondatastorage.googleapis.com/io-2013/presentations/129%20-%20Bluetooth%20Best%20Practices.pdf