在特定时间段后进行kontakt.io信标扫描

时间:2018-09-27 10:46:51

标签: ios swift core-bluetooth beacon kontakt.io

我已经使用kontakt.io进行信标扫描(检测)。根据我的要求,我使用了Kontakt.io方法的KTKDevicesManagerDelegate。我想扫描信标 在特定的时间间隔内,在该时间之后停止扫描,然后重新开始信标进程扫描。

例如: 我每5分钟扫描一次信标(平均300秒)。当时间为4分30秒(平均270秒)时,我开始以3秒的时间间隔扫描下一个30秒.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")
        }

    }

}

问题是,当我在时间介于270到300秒之间连接信标时调用该时间didDiscover方法,但是我断开信标时未调用该时间didDiscover方法。

0 个答案:

没有答案