如何在Android中获取BLE的RSSI值



我正在使用Kontakt信标设备&在nexus 5上测试。当我把iPad作为信标设备进行测试时,我能够找到相关服务。在android开发人员网站上给出的代码的帮助下实现特性。但现在我想根据手机与信标设备的距离做一些动作。我试着检测手机离信标设备有多远比如iOS CLBeacon。邻近(CLProximityFar, CLProximityNear, clproximityimmediate &CLProximityUnknown)。我搜索了,但没能在android中找到这样的东西。所以决定根据rssi采取一些行动。但问题是无论我第一次得到的rssi,即在移动检测信标设备的时候,即使我靠近信标设备或远离它,它也不会改变。

如果有人知道如何在android中获得不断变化的rssi,请分享。谢谢。

我不知道你是如何检查你所描述的从未改变的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(); 
    }
} 

相关内容

  • 没有找到相关文章

最新更新