如何在Android中改变BLE的RSSI

时间:2014-08-21 13:54:10

标签: android bluetooth-lowenergy proximity rssi

我正在使用Kontakt信标设备&在nexus 5上进行测试。当我测试iPad作为信标设备时,我能够找到服务&在Android开发者网站上给出的代码的帮助下的特征。但现在我想根据移动设备与信标设备的距离做一些动作。所以我试图检测移动设备与iOS CLBeacon.Proximity(CLProximityFar,CLProximityNear,CLProximityImmideate& CLProximityUnknown)之间的距离。我搜索但无法在android中找到这样的内容。所以决定根据rssi做一些动作。但问题是我第一次得到的rssi,即在移动检测信标设备没有改变时,即使我靠近信标设备或远离它。

如果有人知道如何在android中更改rssi,那么请分享。 谢谢。

1 个答案:

答案 0 :(得分:0)

我不确定您是如何通过现有的APP或自己编写的代码检查未更改的rssi?

但是从代码来看,它非常简单,我在Android 5.0中添加了核心代码,

//get your device's BT adapter
mBluetoothAdapter = ((BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE)).getAdapter();
mLescanner = mBluetoothAdapter.getBluetoothLeScanner();
settings = new ScanSettings.Builder().setScanMode(scanSettings.SCAN_MODE_LOW_LATENCY).build();
mLescanner.startScan(this.mLeScanCallback);

回调就是这样,你可以在函数中获得实时的rssi:

this.mLeScanCallback = new ScanCallback() {
    @Override
    public void onScanResult(int callbackType, ScanResult result) {
        int realTimeRssiYouWant = result.getRssi(); 
    }
}