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