Я пытаюсь найти маяк, а затем, как только я его обнаружу, запускаю рекламу сервера GATT со своего телефона.Проблема заключается в том, что сканирование, по-видимому, не останавливается должным образом, а затем прерывает мое соединение с устройствами, подключающимися к серверу GATT.
Первое, что я попробовал, - это остановка и открепление моего BeaconScannerService с помощью * 1003.*
beaconManager.unbind(this)
внутри onUnbind () и OnStopService ().
После того, как это не сработало, я попытался отсоединить сканер сразу после нахождения моего маяка:
override fun didRangeBeaconsInRegion(beacons: Collection<Beacon>, region: Region) {
if (beacons.isNotEmpty()) {
for (beacon in beacons) {
if (!listOfBeacons.contains(beacon)) {
listOfBeacons.add(beacon)
sendNotificationFound()
localIntent.putExtra("BT_Address", beacon.bluetoothAddress)
localIntent.putExtra("Is_Connected", true)
LocalBroadcastManager.getInstance(this).sendBroadcast(localIntent)
Log.e("BEACON", "FOUND ONE " + beacon.bluetoothAddress)
}
}
Log.e(TAG, "Stopping Service")
beaconManager.stopRangingBeaconsInRegion(region)
beaconManager.removeAllRangeNotifiers()
beaconManager.stopMonitoringBeaconsInRegion(region)
beaconManager.removeAllMonitorNotifiers()
beaconManager.unbind(this)
beaconManager.isBound(this)
stopSelf()
}
}
Я также включил опцию отладки BeaconManager, но так много всего происходит, что я понятия не имею, что будет полезно.
В конце я просто хотел бы иметь возможность полностью избавиться от всего сканирования маяка после того, как я обнаружил свой маяк.