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
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.API Başvurusu
Framework
AIBuds.xcframework
İçe Aktarma
SDK'yı kullanmak istediğiniz dosyalarda, ana başlığı içe aktarın:
- Swift
- Objective-C
import AIBuds#import <AIBuds/AIBuds.h>
#import <AIBuds/AIBuds-Swift.h>Protokol
powerOff yöntemi aşağıdaki protokoldedir. Bu protokol, temel cihaz API protokolünden kalıtım alır.
- Swift
- Objective-C
/// 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?)
}/// Defines common device operations including power off
@protocol AIBudsDeviceCommonAPI <AIBudsDeviceAPI>
/// 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.
- (void)powerOffWithCompletion:(AIBudsCompletionHandler)completion;
@endÖrnek Yöntemi
Cihazı programatik olarak kapatır.
iOS 13.0+
- Swift
- Objective-C
/// 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?)/// 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.
- (void)powerOffWithCompletion:(AIBudsCompletionHandler)completion;Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
| completion | AIBudsCompletionHandler? | İşlem tamamlandığında çağrılan isteğe bağlı callback. |
Callback parametreleri:
| Ad | Tür | Açıklama |
|---|---|---|
| success | Bool | İşlem başarılıysa true, değilse false. |
| error | NSError? | İş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
- Objective-C
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")
}
}
}#import <AIBuds/AIBuds.h>
@interface DeviceManager ()
/// The connected device
@property(weak, nonatomic) id<AIBudsDeviceConvertible> device;
@end
@implementation DeviceManager
- (void)powerOffDevice {
__weak typeof(self) weakSelf = self;
id<AIBudsDeviceCommonAPI> device = (id<AIBudsDeviceCommonAPI>)self.device;
// Ensure the device supports power off protocol
if ([device conformsToProtocol:@protocol(AIBudsDeviceCommonAPI)]) {
// Execute power off with completion handler
[device powerOffWithCompletion:^(BOOL success, NSError *_Nullable error) {
// Handle failure case
if (!success) {
NSLog(@"Power off failed: %@", error);
return;
}
// Handle success case
NSLog(@"Power off command sent successfully");
}];
}
}
@endHata Yönetimi
Tamamlama işleyicisi aşağıdaki hata türlerini döndürebilir:
Hata etki alanı: AIBudsSDK.ErrorDomain
- Swift
- Objective-C
| Hata Kodu | Açıklama | Önerilen Çözüm |
|---|---|---|
| .deviceNotConnected | Cihaz bağlı değil | Eşleştirme ve bağlantıyı kontrol edin |
| .bleCommandExecFailedDueToTimeout | İşlem zaman aşımına uğradı | İşlemi yeniden deneyin |
| .deviceBusy | Cihaz başka bir işlemle meşgul | Devam eden işlemin bitmesini bekleyin |
| .deviceNotSupport | Cihaz kapatma komutunu desteklemiyor | Çağrıdan önce cihaz özelliklerini kontrol edin |
| Hata Kodu | Açıklama | Önerilen Çözüm |
|---|---|---|
| AIBudsSdkErrorCodeDeviceNotConnected | Cihaz bağlı değil | Eşleştirme ve bağlantıyı kontrol edin |
| AIBudsSdkErrorCodeBleCommandExecFailedDueToTimeout | İşlem zaman aşımına uğradı | İşlemi yeniden deneyin |
| AIBudsSdkErrorCodeDeviceBusy | Cihaz başka bir işlemle meşgul | Devam eden işlemin bitmesini bekleyin |
| AIBudsSdkErrorCodeDeviceNotSupport | Cihaz kapatma komutunu desteklemiyor | Çağrıdan önce cihaz özelliklerini kontrol edin |
En İyi Uygulamalar
-
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.
-
Arayüzü ana iş parçacığında güncelleyin: Callback içinden arayüzü güncellerken
DispatchQueue.main.asynckullanın. -
Zayıf referans kullanın: Tutma döngülerini önlemek için callback içinde
[weak self]kullanın. -
Protokol desteğini kontrol edin: Metodu çağırmadan önce cihazın
DeviceCommonAPIprotokolünü desteklediğini doğrulayın. -
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