Приемник вещания сканера Wi-Fi регистрируется только один раз, но постоянно возвращает результатыAndroid

Форум для тех, кто программирует под Android
Anonymous
Приемник вещания сканера Wi-Fi регистрируется только один раз, но постоянно возвращает результаты

Сообщение Anonymous »

Это мой приемник вещания, взятый из документации менеджера Wi-Fi:

Код: Выделить всё

private val wifiScanReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent?) {
val success = intent?.getBooleanExtra(WifiManager.EXTRA_RESULTS_UPDATED, false) ?: false
Log.d("WifiManager", "In on receive $success with scan number: $scanId")

if (success) {
scanSuccess()
} else {
scanFailure()
}
// unregisterWifiReceiver()
}
}
Я регистрирую приемник Wi-Fi в методе создания и вызываю запуск сканирования при каждом нажатии кнопки. Однако даже когда я нажимаю кнопку только один раз, я получаю непрерывное сканирование. Это проблема, поскольку я храню эти значения в базе данных и получаю дубликаты, хотя иногда значение уровня отличается.
Единственный способ, которым мне удалось это исправить. это означает отмену регистрации приемника Wi-Fi после успешного сканирования, а затем создание приемника каждый раз, когда я нажимаю кнопку. Я не уверен, нужно ли мне просто хранить все эти значения. Почему уровень колеблется и почему он возвращает так много результатов? Я использую это для снятия отпечатков пальцев Wi-Fi, поэтому уровень будет весьма важен.

Подробнее здесь: https://stackoverflow.com/questions/779 ... -returning

Вернуться в «Android»