Какова цель setReportDelay для BluetoothLeScanner в Android? Я не могу себе представить, почему можно было бы получить отчеты с опозданием ...Какова цель setReportDelay для BluetoothLeScanner в Android
ответ
setReportDelay() принимает reportDelayMillis
параметр где reportDelayMillis
является:
Задержка отчета в миллисекундах. Устанавливается в 0 для получения уведомления о результатах немедленно. Значения> 0 вызывают результаты сканирования в очереди и доставлены после запрошенной задержки или когда внутренние буфера заполнения до
приходят на ваш вопрос:
Что цель setReportDelay для BluetoothLeScanner в Android? Я не могу себе представить, почему с задержкой получать отчеты ... |
Как я понял цель этого является то, что иногда при сканировании в течение очень короткого периода времени, не все devices/beacons
могут быть найдены, а на втором сканировании другой может быть Cought во время сканирования.
Ex: Предположим, у вас есть три beacons
и вы сделали два различных сканирования для 1s
. При первом сканировании найден только один маяк, но и на других других маяках. Установка задержки будет queue
все они, и вы сможете показать их все. В противном случае иногда одного маяка, иногда все из них, а иногда и два из них будут показаны. (Это связано главным образом с frequency
они передают)
Вы можете использовать также Lists
для этой цели, так что, когда beacon
найден вы добавляете их до list
и покажите их после некоторого delay
(используя Handler/Timer
). Но для этого потребуется больше работы. Таким образом, с этой функцией, вероятно, упрощается
Различные устройства сканируют несколько иначе. При сканировании некоторые возвращают одно и то же найденное устройство несколько раз за сканирование.
Если вы установили задержку, Android создаст очередь, и все дубликаты будут отфильтрованы до того, как будет возвращен этот список устройств в очереди.
setReportDelay()> 0 заставляет сканер останавливать результаты, а затем запускать onBatchScanResults() из ScanCallback, а не обычный onScanResult().
Это очень полезно, если вам нужно сделать обновление пользовательского интерфейса каждые несколько секунд: вместо того, чтобы обновлять пользовательский интерфейс каждый раз, когда приходит пакет объявлений, вы можете просто отложить результаты. Кроме того, вы получаете более полный набор результатов.
Обратите внимание, что ваше устройство должно поддерживать это. См.
- 1. Android BLE setReportDelay()
- 2. Какова цель AccountManager (android)?
- 3. Какова цель SharedPreferences в Android?
- 4. Какова цель жестов в Android?
- 5. Какова реальная цель тега contentDescription для Android?
- 6. Какова цель Android для определения настроек локализации?
- 7. Какова цель для HTML?
- 8. Какова цель отключения службы Android в манифесте?
- 9. Какова цель "?"
- 10. Какова цель приемника для APPWIDGET_UPDATE
- 11. Какова цель NotificationActivity crittercism в Android
- 12. Какова цель класса PowerProfile в android.
- 13. Какова цель использования класса журнала в android?
- 14. Какова цель gradle-wrapper.properties в Android Studio?
- 15. Какова цель утилизации фрагментов FragmentManager в Android?
- 16. Какова цель openhelper в android sqlite?
- 17. Какова цель использования переводимых в Android-строк?
- 18. Какова цель onSurfaceChanged?
- 19. Какова цель IntentSender?
- 20. Какова цель #! в URL
- 21. Какова цель node.js для SharePoint?
- 22. Какова цель min_retries для RetryParams?
- 23. Какова цель «?» в Javascript?
- 24. Какова цель :: в C#?
- 25. -libraryjars, какова цель в proguard?
- 26. Какова цель метатега просмотра?
- 27. Какова цель использования dip?
- 28. Как перезапустить BluetoothLeScanner?
- 29. Какова цель установки Linux вместе с Android?
- 30. Какова цель LatLngBounds в GeoDataApi.getAutocompletePredictions()?