无法从BLE北欧事物中检索RSSI值:52

问题描述 投票:3回答:1

我通过适用于Android的Nordic库thingylibgithub)来管理与Thingy52的连接,并在回调侦听器ThingyListener中接收有关设备的信息(例如onGravityVectorChangedEventonAccelerometerValueChangedEvent,[C0 ],依此类推...)。

我无法做(而且我找不到方法)是我如何获取有关与设备连接的信息,确切地说是RSSI值。

使用onGyroscopeValueChangedEvent,在BluetoothLeScannerCompat扫描回调中,我检测到thingy52蓝牙设备及其RSSI值,但是如果我设置了较高的扫描频率,例如onBatchScanResults,它几乎始终不会检测到设备。

我如何进行扫描:

.setReportDelay(10)

[我需要获得private void startBLEScan() { // set scan ScanSettings scanSettings = new ScanSettings.Builder() .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY) .setReportDelay(10) // set frequency .setUseHardwareBatchingIfSupported(false) .build(); // filter scan by uuid List<no.nordicsemi.android.support.v18.scanner.ScanFilter> filters = new ArrayList<>(); filters.add(new ScanFilter.Builder().setServiceUuid(new ParcelUuid(ThingyUtils.THINGY_BASE_UUID)).build()); // start scan, this will trigger the scanCallback BluetoothLeScannerCompat scanner = BluetoothLeScannerCompat.getScanner(); scanner.startScan(filters, scanSettings, scanCallback); } private final ScanCallback scanCallback = new ScanCallback() { @Override public void onBatchScanResults(@NonNull List<ScanResult> results) { super.onBatchScanResults(results); for(ScanResult result : results) { result.getRssi(); // read RSSI values } } }; 的频率,或10Hz北欧thingy52的RSSI值,我无法从100Hz事件中获得。

我该怎么办?预先谢谢你。

我的T​​hingyListener示例:

ThingyListener
java android bluetooth bluetooth-lowenergy rssi
1个回答
1
投票

我终于以这种方式解决了:

© www.soinside.com 2019 - 2024. All rights reserved.