Ограничьте число раз, когда центральный может записывать на периферийное устройство, используя CBPeripheralManager - PullRequest
0 голосов
/ 11 ноября 2019

Я хочу, чтобы мое периферийное устройство отключалось от центрального, когда центральное устройство записывает значение один раз.

Я искал некоторые места и обнаружил, что это невозможно с периферийной стороны, но ответы были старые. Apple представила что-то для этого? Вот моя функция, когда я получаю запрос на запись.

func peripheralManager(_ peripheral: CBPeripheralManager, didReceiveWrite requests: [CBATTRequest]) {
    peripheralManager.stopAdvertising()
    for request in requests {
        if let value = request.value {
            let messageText = String(data: value, encoding: String.Encoding.utf8) as String?
            let data = Data(messageText!.utf8)
            let hexString = data.map{ String(format:"%02x", $0) }.joined()
            print(hexString)

            self.peripheralManager.respond(to: request, withResult: .success)
            let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)

            let nextViewController = storyBoard.instantiateViewController(withIdentifier: "accessGrantedViewController") as! AccessGrantedViewController
            self.present(nextViewController, animated:true, completion:nil)

        }
    }  
}

Возможно ли это сделать?

...