Android 및 iOS 용 실험 Bluetooth LE
프로그램을 사용 중입니다. 지금은 iOS 측에서 발송 한 Android 광고 필터링 비콘 광고에 약간의 문제가 있습니다. Android에는 마스크가있는 UUID로 광고를 필터링하는 기능이 있습니다 (특정 값으로 시작하는 UUID를 얻으려고 할 때 필요합니다).하지만 작동시키지 못합니다. 여기 내가 시도한 바가 있습니다 :Android 블루투스 LE 마스크 된 UUID 필터
private void freshen() {
// kill current scanner
if (mLEScanner != null)
mLEScanner.stopScan(mScanCallback);
// set new one to be a match scanner
ScanSettings settings = new ScanSettings.Builder()
.setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
.build();
List<ScanFilter> filters = new ArrayList<>();
// create data uuid starting with the value 1
ParcelUuid data = ParcelUuid.fromString("10000000-0000-0000-0000-000000000000");
// create a mask to ensure only that value is searched
ParcelUuid mask = ParcelUuid.fromString("10000000-0000-0000-0000-000000000000");
// build the filter
ScanFilter.Builder builder = new ScanFilter.Builder();
builder.setServiceUuid(data, mask);
ScanFilter filter = builder.build();
// add the filter to the scanner
filters.add(filter);
mLEScanner.startScan(filters, settings, mScanCallback);
}
결과가 0입니다. 모든 마스크 값을 0으로 설정하더라도 (무시할 숫자 임) 여전히 0의 결과를 생성합니다. 필터를 제거하면 1로 시작하는 많은 결과가 나타납니다. 현재 Android 버전에서 깨져 있습니까?