Ana içeriğe geç

Cihazın Eşlemesini Kaldır

Cihazın eşlemesini kaldırma işlemi, cihaz ile bağlı cihaz arasındaki eşleme ilişkisini kaldırır. Bu işlem, cihazı kalıcı olarak bağlantısını kesmeniz veya başka bir cihazla eşleme hazırlamanız gerektiğinde kullanışlıdır.

Ön Koşullar

Eşleme kaldırmadan önce şunlardan emin olun:

  • Cihaz bağlı ve kararlı bir durumda
  • Gerekli veri senkronizasyonu tamamlandı
  • Kullanıcı, eşleme kaldırma işleminden sonra cihazın bağlantısının kesileceğini anlıyor

AI desteğiyle uygulayın

AI ile geliştirin

Bu iş akışını AI ile uygulayın

Resmî “AIBuds Cihaz Eşlemesini Kaldırma” becerisini kullanarak iş akışını uygulamanıza uyarlayın.

https://docs-aibuds.github.io/tr/skills/implement-aibuds-unpair-device adresini okuyup yönergeleri izleyin. Bu beceriyle “AIBuds Cihaz Eşlemesini Kaldırma” iş akışını iOS projesinde uygulayıp doğrulayın.
Resmî beceriyi görüntüle

API Referansı

Çerçeve

AIBuds.xcframework

İçe Aktarma

SDK'yı kullanmak istediğiniz dosyalarda ana başlığı içe aktarın:

Swift
import AIBuds

Protokol

unpair metodu aşağıdaki protokollü tanımlanmıştır. Protokol, temel cihaz API protokolünden miras alır.

Swift
/// Defines common device operations including unpairing
protocol DeviceCommonAPI: DeviceAPI {
    /// Unpairs the device
    /// - Parameters:
    ///   - completion: A completion callback that returns the operation result
    ///     - success: `true` if the operation succeeds, `false` otherwise
    ///     - error: An `NSError` object describing the error that occurred, or `nil` if the operation succeeds
    func unpair(_ completion: AIBudsCompletionHandler?)
}

Örnek Metod

Cihazın bağlı cihazla olan eşlemesini kaldırır.

iOS 13.0+

Swift
/// Unpairs the device
/// - Parameters:
///   - completion: A completion callback that returns the operation result
///     - success: `true` if the operation succeeds, `false` otherwise
///     - error: An `NSError` object describing the error that occurred, or `nil` if the operation succeeds
func unpair(_ completion: AIBudsCompletionHandler?)

Parametreler

ParametreTürAçıklama
completionAIBudsCompletionHandler?İşlem tamamlandığında çağrılan isteğe bağlı tamamlama geri çağrısı

Geri Çağrı Parametreleri:

AdTürAçıklama
successBoolİşlem başarılıysa true, aksi takdirde false
errorNSError?İşlem başarısız olursa hata bilgilerini içerir, aksi takdirde nil

Dönüş Değeri

Bu metot doğrudan bir değer döndürmez. Sonuç, tamamlama geri çağrısı aracılığıyla sağlanır.

Kullanım Örnekleri

Swift
import AIBuds

class DeviceManager {

    /// Connected device
    weak var device: DeviceConvertible?

    /// Unpairs the connected device
    func unpairDevice() {
        // Check if the device supports the unpair protocol
        guard let device = device as? DeviceCommonAPI else {
            print("Device does not support unpairing")
            return
        }

        // Execute unpair with completion handler
        device.unpair { [weak self] success, error in
            // Handle failure case
            if !success {
                let errorMessage = {
                    if let error = error {
                        return "\(error)"
                    }
                    return "Unknown error"
                }()
                print("Unpair failed: \(errorMessage)")
                return
            }
            // Handle success case
            print("Unpair completed successfully")
        }
    }
}

Hata İşleme

Tamamlama işleyicisi aşağıdaki hata türlerini döndürebilir:

Hata Alanı: AIBudsSDK.ErrorDomain

Hata KoduAçıklamaKurtarma Önerisi
.deviceNotConnectedCihaz bağlı değilCihazın eşleştirildiğinden ve bağlı olduğundan emin olun
.bleCommandExecFailedDueToTimeoutİşlem zaman aşımına uğradıİşlemi yeniden deneyin
.deviceBusyCihaz başka bir işlemle meşgulDevam eden işlemlerin tamamlanmasını bekleyin
.deviceNotSupportBu cihazda eşleme kaldırma desteklenmiyorÇağırmadan önce cihaz yeteneklerini kontrol edin

En İyi Uygulamalar

  1. Kullanıcıyı Onaylayın: Eşleme kaldırmayı başlatmadan önce her zaman bir onay iletişim kutusu görüntüleyin, çünkü bu işlem cihazın bağlantısını kesecek ve yeniden eşleme gerektirecektir.

  2. Arka Plan Yürütmeyi İşleyin: UI'yi güncellerken tamamlama işleyicisini bir DispatchQueue.main.async bloğuna sarın.

  3. Zayıf Self Referansı: Retain döngülerini önlemek için tamamlama işleyicisinde [weak self] kullanın.

  4. Protokol Uyumluluğunu Kontrol Edin: Metodu çağırmadan önce cihazın DeviceCommonAPI protokolüne uyduğunu doğrulayın.

  5. Bağlantı Kesmeyi İşleyin: Başarılı bir eşleme kaldırma işleminden sonra, cihaz bağlantısını düzgün bir şekilde işleyin ve yeniden eşleme için rehberlik sağlayın.

Platform Sınırlamaları

iOS Sistem Bluetooth Sınırlaması

iOS'ta, sistem Bluetooth ayarları uygulamaların Bluetooth cihazlarının eşlemesini programatik olarak kaldırmasına izin vermez. Bu, Apple tarafından güvenlik ve kullanıcı kontrolü için uygulanan sistem düzeyinde bir kısıtlamadır.

Bu ne anlama geliyor:

  • unpair çağırdıktan sonra bile, iOS cihaz için BLE eşleme bilgilerini saklayacaktır
  • Uygulama yeniden başlatıldığında veya Bluetooth etkinleştirildiğinde cihaz otomatik olarak yeniden bağlanabilir
  • Cihaz iOS Ayarlar > Bluetooth'ta görünür kalacaktır

Önerilen Kullanıcı Rehberliği:

iOS uygulamanızda eşleme kaldırma işlevini uygularken, kullanıcıları iOS Ayarlarından manuel olarak eşleme kaldırmaya yönlendirmeniz gerekir:

  1. Tam eşleme kaldırma için: Kullanıcıları Ayarlar > Bluetooth'a gidin, cihazı bulun, "i" simgesine dokunun ve "Bu Cihazı Unut" seçeneğini seçin
  2. Açık UI geri bildirimi sağlayın: Kullanıcı eşleme kaldırmayı istediğinde talimatları veya Bluetooth ayarlarına derin bağlantıyı gösterin
  3. Uygulama düzeyinde bağlantı kesme: unpair metodu hala uygulamanız açısından cihazın bağlantısını kesecektir, ancak sistem eşlemesi kalacaktır
Swift
/// Prompt user to unpair from iOS Settings
func promptUserToUnpairFromSettings() {
    // Show alert with instructions
    let alert = UIAlertController(
        title: "Unpair Device",
        message:
            "To completely unpair the device, go to Settings > Bluetooth, find your device, tap the 'i' icon next to it, then select 'Forget This Device'.",
        preferredStyle: .alert
    )
    alert.addAction(
        UIAlertAction(title: "Open Settings", style: .default) { _ in
            // Deep link to Bluetooth settings
            if let url = URL(string: "App-prefs:Bluetooth") {
                UIApplication.shared.open(url)
            }
        })
    alert.addAction(UIAlertAction(title: "Cancel", style: .cancel))

    // Present alert
    if let viewController = UIApplication.shared.windows.first?.rootViewController {
        viewController.present(alert, animated: true)
    }
}

Notlar

  • Eşleme kaldırma komutu çalıştırıldıktan sonra cihazın bağlantısı kesilecektir
  • Cihazın yeniden bağlanması için yeniden eşleme gerekecektir
  • Tüm eşleme bilgileri her iki cihazdan da kaldırılacaktır
  • Devam eden işlemler yarıda kesilecektir
  • Eşleme kaldırma işlemi birkaç saniye sürebilir