该问题是由于扫描过滤器历史记录中没有可用的插槽导致的。在 Android 平台上,扫描过滤器历史记录大小是受限制的,因此如果在应用程序中频繁地添加扫描过滤器,就会导致这个问题。
为了解决这个问题,您可以使用以下两种方法之一:
其中,android.bluetooth.le.maxAdvertisingFilterLengthBytes 是用来定义扫描过滤器历史记录大小的参数。注意,这个参数的最大值是 512 字节。
代码示例:
以下是一个使用扫描过滤器的示例代码:
BluetoothLeScanner scanner = BluetoothAdapter.getDefaultAdapter().getBluetoothLeScanner();
ScanSettings settings = new ScanSettings.Builder().setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY).build();
List
您可以将其重构为以下代码,以避免对扫描过滤器的过度使用:
BluetoothLeScanner scanner = BluetoothAdapter.getDefaultAdapter().getBluetoothLeScanner();
ScanSettings settings = new ScanSettings.Builder().setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY).build();
List