Я создаю приложение для Android, которое сканирует два типа маяка с помощью библиотеки android-beacon-library:
- Тип iBeacon (0x4c000215)
- пользовательский маяк с кодом типа маяка 0x4106
Я знаю, что была проблема, которая исправляла сломанный экран Samsung при сканировании https://github.com/AltBeacon/android-beacon-library/pull/798.
Это исправление было включено в выпуск 2.15.3.
С тех пор во время каждого сканирования на устройстве Samsung> = Android 8.0 я не вижу ни одного из моих пользовательских маяков, но получаю другие типы маяков, такие как iBeacon. Так что я все еще использую релиз 2.15.2.
Вот мой пользовательский макет маяка:
"m:0-1=4106,i:2-3,i:4-4,i:5-6,i:7-8,i:9-10,i:11-11,i:12-12,i:13-13,i:14-14,i:15-15,i:16-16,i:17-17,i:18-23,p:24-24"
Я проверил код из библиотеки и вижу фильтр, который применяется только для устройств Samsung:
if (Build.MANUFACTURER.equalsIgnoreCase("samsung")) {
// On the Samsung Galaxy Note 8.1, scans are blocked with screen off when the
// scan filter is empty (wildcard). We do a more detailed filter on Samsung only
// because it might block detections of AltBeacon packets with non-standard
// manufacturer codes. See #769 for details.
filters = new ScanFilterUtils().createScanFiltersForBeaconParsers(
mBeaconManager.getBeaconParsers());
}
Если я удаляю этот код, все работает, как я ожидаю.
Что мне нужно сделать, чтобы мне не нужно было редактировать библиотеку?
Спасибо.