Ana içeriğe geç

Kapatma

Kapatma işlemi, cihazı programatik olarak kapatır. Bu işlem, cihazı uzaktan kapatmanız gerektiğinde veya kontrol altındaki kapatma dizisinin bir parçası olarak kullanmanız gerektiğinde faydalıdır.

Önkoşullar

Kapatma işlemi gerçekleştirmeden önce şunları sağlayın:

  • Cihaz bağlı ve kararlı durumda
  • Kaydedilmemiş tüm veriler kaydedildi
  • Kullanıcı, kapatma sonrası 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 Güç Kapatma” becerisini kullanarak iş akışını uygulamanıza uyarlayın.

https://docs-aibuds.github.io/tr/skills/implement-aibuds-power-off adresini okuyup yönergeleri izleyin. Bu beceriyle “AIBuds Güç Kapatma” iş akışını iOS projesinde uygulayıp doğrulayın.
Resmî beceriyi görüntüle

API Başvurusu

Framework

AIBuds.xcframework

İçe Aktarma

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

Swift
import AIBuds

Protokol

powerOff yöntemi aşağıdaki protokoldedir. Bu protokol, temel cihaz API protokolünden kalıtım alır.

Swift
/// Defines common device operations including power off
protocol DeviceCommonAPI: DeviceAPI {
    /// Power off the device
    /// - Parameters:
    ///   - completion: Completion callback that returns the operation result
    ///     - success: `true` if the operation was successful; otherwise `false`.
    ///     - error: An `NSError` object that describes the error that occurred, or `nil` if the operation was successful.
    func powerOff(_ completion: AIBudsCompletionHandler?)
}

Örnek Yöntemi

Cihazı programatik olarak kapatır.

iOS 13.0+

Swift
/// Power off the device
/// - Parameters:
///   - completion: Completion callback that returns the operation result
///     - success: `true` if the operation was successful; otherwise `false`.
///     - error: An `NSError` object that describes the error that occurred, or `nil` if the operation was successful.
func powerOff(_ completion: AIBudsCompletionHandler?)

Parametreler

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

Callback parametreleri:

AdTürAçıklama
successBoolİşlem başarılıysa true, değilse false.
errorNSError?İşlem başarısızsa hata bilgisi; başarılıysa nil.

Dönüş Değeri

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

Kullanım Örnekleri

Swift
import AIBuds

class DeviceManager {

    /// The connected device
    weak var device: DeviceConvertible?

    /// Powers off the connected device
    func powerOffDevice() {
        // Ensure the device supports power off protocol
        guard let device = device as? DeviceCommonAPI else {
            print("Device does not support power off")
            return
        }

        // Execute power off with completion handler
        device.powerOff { [weak self] success, error in
            // Handle failure case
            if !success {
                let errorMessage = {
                    if let error = error {
                        return "\(error)"
                    }
                    return "Unknown error"
                }()
                print("Power off failed: \(errorMessage)")
                return
            }
            // Handle success case
            print("Power off command sent successfully")
        }
    }
}

Hata Yönetimi

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

Hata etki alanı: AIBudsSDK.ErrorDomain

Hata KoduAçıklamaÖnerilen Çözüm
.deviceNotConnectedCihaz bağlı değilEşleştirme ve bağlantıyı kontrol edin
.bleCommandExecFailedDueToTimeoutİşlem zaman aşımına uğradıİşlemi yeniden deneyin
.deviceBusyCihaz başka bir işlemle meşgulDevam eden işlemin bitmesini bekleyin
.deviceNotSupportCihaz kapatma komutunu desteklemiyorÇağrıdan önce cihaz özelliklerini kontrol edin

En İyi Uygulamalar

  1. Kullanıcıdan onay alın: Cihazın bağlantısı kesileceği için kapatma işleminden önce bir onay iletişim kutusu gösterin.

  2. Arayüzü ana iş parçacığında güncelleyin: Callback içinden arayüzü güncellerken DispatchQueue.main.async kullanın.

  3. Zayıf referans kullanın: Tutma döngülerini önlemek için callback içinde [weak self] kullanın.

  4. Protokol desteğini kontrol edin: Metodu çağırmadan önce cihazın DeviceCommonAPI protokolünü desteklediğini doğrulayın.

  5. Bağlantı kesilmesini yönetin: Başarılı kapatmadan sonra cihazın bağlantı durumunu uygulamada doğru biçimde güncelleyin.

Notlar

  • Kapatma komutu yürütüldükten sonra cihaz bağlantısını kaybeder
  • Kullanıcı cihazı manuel olarak tekrar açabilir
  • Devam eden tüm işlemler kesintiye uğrar
  • Kapatma işlemi birkaç saniye sürebilir