对于 Android 12 中的 Beacon 扫描问题,可以使用新的 API 寻找解决方案。
Android 12 引入了两个新的扫描 API:
以下是一个使用 startScanByBssid() 进行扫描的示例代码:
private void scanForBleDevices() {
BluetoothLeScannerCompat scanner = BluetoothLeScannerCompatProvider.getBluetoothLeScannerCompat(this);
ScanSettings scanSettings = new ScanSettings.Builder()
.setScanMode(ScanSettings.SCAN_MODE_LOW_POWER)
.build();
List
private ScanCallback scanCallback = new ScanCallback() { @Override public void onScanResult(int callbackType, ScanResult result) { // handle scan result here } };
需要注意的是,在 Android 12 中,您需要在 manifest 文件中添加以下权限才能使用 Beacon 扫描 API: