我正在尝试在我的Android应用程序中捕获BLE广播(ADV_NONCONN_IND)数据包。但是我无法收到任何数据包。
我知道我的外围设备正在发送数据包,因为我有另一个可以看到所有数据包的BLE捕获设备。但是,手机内的应用程序看不到任何BLE数据包。
我的应用可以查看其他数据包,例如ADV_SCAN_ID但不包含ADV_NONCONN_IND(广播)数据包。
public void uploadScanBytes(SensorDataUploader sensorDataUploader, int count) {
BluetoothAdapter btAdapter = getBluetoothAdapter();
if (btAdapter == null) return;
BluetoothLeScanner scanner = btAdapter.getBluetoothLeScanner();
ScanSettings settings = new ScanSettings.Builder()
.setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
.setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES)
.build();
scanner.startScan(Collections.<ScanFilter>emptyList(), settings, new LimitedScanRecordReader(sensorDataUploader, count, scanner));
}
public void onScanResult(int callbackType, ScanResult result) {
if(result.getDevice().getAddress().equals("00:AB:2c:A1:E2:F1")) {
long timestamp = System.currentTimeMillis() - SystemClock.elapsedRealtime() +
result.getTimestampNanos() / 1000000;
byte[] rawBytes = result.getScanRecord().getBytes();
Log.i(DataTransferService.class.getName(), "Raw bytes: " + byteArrayToHex(rawBytes));
sensorDataUploader.upload(timestamp, rawBytes);
}
}
请让我知道我错过了什么。 提前致谢