how to get the rssi value for a bluetooth low energy device ?

大城市里の小女人 提交于 2019-11-30 03:57:56

问题


I am new with android programming and trying to get rssi value form a BLE device for distance measurements.i can scan and get the name and mac address of the device but i've tried codes to get the rssi but can't get useful result,also i use the sample on the android developer site. can someone give me the right code to do so??


回答1:


Two solution for this.There is different approach one can have for 4.0 and 5.0 devices to search/scan BLE devices. You did not mentioned which one you are using, hence adding both the solution below.

1) for Android 4.4 + till 5.0, you have to start LE scanning via BluetoothAdapter's startLEScan method, which gives you below callback with RSSI value. see signature of method.

onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord)

// second param above is RSSI value.

2) For android 5.0+ devices you have to start scanning by BluetoothLeScanner class's startScan method, like below

getBluetoothLeScanner().startScan

which has callback onScanResult to notify for new scanned device, you can use below code to get rssi.

public void onScanResult(int callbackType, ScanResult result) {
final int rssi = result.getRssi(); //RSSI value


来源:https://stackoverflow.com/questions/29365737/how-to-get-the-rssi-value-for-a-bluetooth-low-energy-device

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!