2015-03-31 133 views
3

我是新的android編程和嘗試獲取rssi值形成一個BLE設備的距離測量。我可以掃描並獲取設備的名稱和mac地址,但我已經嘗試過代碼來獲取rssi,但無法獲得有用的結果,我也使用Android開發人員網站上的示例。 有人可以給我正確的代碼嗎?如何獲取藍牙低功耗設備的rssi值?

+0

可以請您分享一下工作代碼。請。謝謝。 – imsrgadich 2017-08-17 09:33:48

回答

12

爲此提供了兩種解決方案。對於4.0和5.0設備搜索/掃描BLE設備有不同的方法。你沒有提到你正在使用哪一個,因此添加了下面的解決方案。

1)對於Android 4.4 +至5.0,您必須通過BluetoothAdapter'sstartLEScan方法啓動LE掃描,這會爲您提供以下RSSI值的回調。見方法的簽名。

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

//上面的第二個參數是RSSI值。

2)對於Android 5.0以上版本的設備,你必須開始通過BluetoothLeScanner類的startScan方法掃描,如下面

getBluetoothLeScanner().startScan 

其中有回調onScanResult通知新的掃描設備,可以使用下面的代碼來獲得RSSI 。

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

我正在使用android 4.3,我使用了第一個解決方案,它可能工作。謝謝 ! – alaa 2015-03-31 21:06:28

+1

@alaa,RSSI進來 - 價值,從-100到0. 如果它適合你,你可以接受答案。 – AAnkit 2015-04-01 02:45:23

+0

是的,它給我形成這個範圍:)謝謝 – alaa 2015-04-01 07:29:01