我试图找出我的问题是否有解决方案 . 我想在每次RSSI达到20英尺时推送本地通知 . 我的代码有效,但它不需要时触发通知 . 提前致谢!

获取通知需要5分钟...

func centralManager(_ central:CBCentralManager,didDiscover peripheral:CBPeripheral,advertisementData:[String:Any],rssi RSSI:NSNumber){

if peripheral.name?.range(of:"iPhone") != nil {

        print(RSSI)

        switch RSSI as! Int {
        case let x where x <=  -75:
            print("20ft")

            self.distance.setText("within 20ft")

                let content = UNMutableNotificationContent()
                content.title = "ALERT !"
                content.body = "well"
                content.sound = UNNotificationSound.default()
                // Time
                var trigger: UNTimeIntervalNotificationTrigger?
                trigger = UNTimeIntervalNotificationTrigger(timeInterval: 1, repeats: false)
                // Actions
                let snoozeAction = UNNotificationAction(identifier: "Track", title: "Track", options: .foreground)

                let category = UNNotificationCategory(identifier: "UYLReminderCategory", actions: [snoozeAction], intentIdentifiers: [] as? [String] ?? [String](), options: .customDismissAction)
                let categories = Set<AnyHashable>([category])

                self.center.setNotificationCategories(categories as? Set<UNNotificationCategory> ?? Set<UNNotificationCategory>())

                content.categoryIdentifier = "UYLReminderCategory"

                let identifier: String = self.stringUUID()

                let request = UNNotificationRequest(identifier: identifier, content: content, trigger: trigger)

                self.center.add(request, withCompletionHandler: {(_ error: Error?) -> Void in
                    if error != nil {
                        print("Something went wrong: \(error!)")
                    }
                })





        case let x where x <  -60:
            print("5ft")
            self.distance.setText("within 5ft")
            session.sendMessage(["com.peard.track":distance!],replyHandler: { reply in
                // success handle reply if expecting a reply
                print(reply)
            })



        case let x where x >=  -60:
            print("3ft")
            self.distance.setText("within 3ft")
            session.sendMessage(["com.peard.track":distance!],replyHandler: { reply in
                // success handle reply if expecting a reply
                print(reply)
            })


        default:
            print("Not sure")
        }

        print("exists")
    } else{
        print("Does Not Exist")
    }

}