Я использовал kontakt.io для сканирования маяка (обнаружения).Согласно моему требованию, я использовал KTKDevicesManagerDelegate
метода Kontakt.io. Я хочу сканировать маяк в течение некоторого определенного промежутка времени и по истечении этого времени прекратить сканирование и перезапустить сканирование процесса маяка.
Например: IЯ сканирую маяк каждые 5 минут (означает 300 секунд). Когда время составляет 4 минуты 30 секунд (означает 270 секунд), я начинаю сканирование в течение следующих 30 секунд с интервалом в 3 секунды. По истечении 5 минут я прекращаю сканирование маяка.и продолжите процесс, как описано выше.
назначить в didFinishLaunching
.Defaults.setValue (Date (), forKey: "ScanningDate")
func scanningBeaconManually()
{
if let Time = Defaults.value(forKey: "ScanningDate") as? Date
{
print("TimeChecked \(Time)")
let startScanningDate:Date = Time
let endScannigDate:Date = Date()
print("endScannigDate \(endScannigDate)")
let second = Int(endScannigDate.timeIntervalSince(startScanningDate))
print("second : \(second)")
if second > 270 && second < 300
{
print("startScnning")
devicesManager.startDevicesDiscovery(withInterval: 3)
if second > 300
{
Defaults.setValue(Date(), forKey: "ScanningDate")
devicesManager.stopDevicesDiscovery()
}
}
if second > 300
{
devicesManager.stopDevicesDiscovery()
Defaults.setValue(Date(), forKey: "ScanningDate")
}
}
}
Проблема заключается в том, что, когда я подключаюсь к маяку, вызов времени didDiscover
вызывает метод, когда время составляет от 270 до 300 секунд, но яотключаю маяк, что время didDiscover
метод не вызывается.