Bağlantıları yönet

Bağlantı başlatma

Yakındaki cihazlar bulunduğunda keşfeden kişi bağlantı başlatabilir. Aşağıdaki örnekte, bir cihaz keşfedilir keşfedilmez bağlantı isteğinde bulunulmaktadır.

Swift

extension Example: DiscovererDelegate {
  func discoverer(
    _ discoverer: Discoverer, didFind endpointID: EndpointID, with context: Data) {
    // An endpoint was found. We request a connection to it. The endpoint info can be used
    // to provide arbitrary information to the discovering device (e.g. device name or type).
    discoverer.requestConnection(to: endpointID, using: "My Device".data(using: .utf8)!)
  }

  func discoverer(_ discoverer: Discoverer, didLose endpointID: EndpointID) {
    // A previously discovered endpoint has gone away.
  }
}

Kullanım alanınıza bağlı olarak, kullanıcıya keşfedilen cihazların listesini göstererek hangi cihazlara bağlanacağını seçmesine izin verebilirsiniz.

Bağlantıyı kabul etme veya reddetme

Keşfeden, reklamverene bağlantı isteği gönderdikten sonra reklamveren, advertiser(_:didReceiveConnectionRequestFrom:with:connectionRequestHandler:) temsilci yöntemi aracılığıyla bağlantı isteği hakkında bilgilendirilir.

Swift

extension Example: AdvertiserDelegate {
  func advertiser(
    _ advertiser: Advertiser, didReceiveConnectionRequestFrom endpointID: EndpointID,
    with context: Data, connectionRequestHandler: @escaping (Bool) -> Void) {
    // Call with `true` to accept or `false` to reject the incoming connection request.
    connectionRequestHandler(true)
  }
}

Reklamveren kabul ettikten sonra her iki tarafa da bildirim gönderilir ve tarafların connectionManager(_:didReceive:from:verificationHandler:) temsilci yöntemiyle bağlantıyı doğrulaması gerekir.

Uygulamanızın, temsilci yöntemi tarafından sağlanan doğrulama kodunu kullanarak bağlantıyı doğrulaması önerilir. Bu sayede kullanıcılar, amaçlanan cihaza bağlandıklarını onaylayabilir. Her iki cihaza da kısa ve rastgele bir dize olan aynı kod verilir. Bu kodu nasıl doğrulayacağınıza siz karar verirsiniz. Bu işlem genellikle her iki cihazda da jetonun gösterilmesini ve kullanıcılardan, Bluetooth eşleme iletişim kutusuna benzer şekilde jetonları manuel olarak karşılaştırıp onaylamalarını istemeyi içerir.

Swift

extension Example: ConnectionManagerDelegate {
  func connectionManager(
    _ connectionManager: ConnectionManager, didReceive verificationCode: String,
    from endpointID: EndpointID, verificationHandler: @escaping (Bool) -> Void) {
    // Optionally show the user the verification code. Your app should call this handler
    // with a value of `true` if the nearby endpoint should be trusted, or `false`
    // otherwise.
    verificationHandler(true)
  }
}

Bağlantı, yalnızca her iki taraf da kabul ettiğinde tam olarak kurulur. Taraflardan biri veya her ikisi reddederse bağlantı iptal edilir.

Yukarıdaki örnekte, bağlantının her iki tarafça otomatik olarak kabul edildiği gösterilmektedir ancak kullanım alanınıza bağlı olarak bu seçimi kullanıcıya bir şekilde sunmak isteyebilirsiniz.