Сброс до заводских настроек
Операция сброса до заводских настроек восстанавливает устройство до исходных заводских настроек, удаляя все пользовательские данные и пользовательские конфигурации. Эта операция полезна при подготовке устройства к перепродаже или устранении постоянных проблем.
Предварительные условия
Перед выполнением сброса до заводских настроек убедитесь, что:
- Устройство подключено и находится в стабильном состоянии
- Все важные данные были резервно скопированы
- Пользователь понимает, что все личные данные будут удалены
Реализация с помощью AI
Реализуйте этот сценарий с AI
Используйте официальный навык «Реализация сброса AIBuds» и адаптируйте сценарий к приложению.
Прочитайте и выполните инструкции https://docs-aibuds.github.io/ru/skills/implement-aibuds-factory-reset. Используйте этот навык, чтобы реализовать «Реализация сброса AIBuds» в данном iOS-проекте и проверить результат.Справочник API
Фреймворк
AIBuds.xcframework
Импорт
В файлах, где вы хотите использовать SDK, импортируйте главный заголовок:
- Swift
- Objective-C
import AIBuds#import <AIBuds/AIBuds.h>
#import <AIBuds/AIBuds-Swift.h>Протокол
Метод factoryReset определен в следующем протоколе. Этот протокол наследуется от базового протокола API устройства.
- Swift
- Objective-C
/// Defines common device operations including factory reset
protocol DeviceCommonAPI: DeviceAPI {
/// Factory reset
/// - 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 factoryReset(_ completion: AIBudsCompletionHandler?)
}/// Defines common device operations including factory reset
@protocol AIBudsDeviceCommonAPI <AIBudsDeviceAPI>
/// Factory reset
/// - 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)factoryResetWithCompletion:(AIBudsCompletionHandler)completion;
@endМетод экземпляра
Восстанавливает устройство до исходных заводских настроек, удаляя все пользовательские данные и пользовательские конфигурации.
iOS 13.0+
- Swift
- Objective-C
/// Factory reset
/// - 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 factoryReset(_ completion: AIBudsCompletionHandler?)/// Factory reset
/// - 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)factoryResetWithCompletion:(AIBudsCompletionHandler)completion;Параметры
| Параметр | Тип | Описание |
|---|---|---|
| completion | AIBudsCompletionHandler? | Необязательный обратный вызов завершения, вызываемый при завершении операции. |
Параметры обратного вызова:
| Имя | Тип | Описание |
|---|---|---|
| success | Bool | true, если операция прошла успешно; иначе false |
| error | NSError? | Содержит информацию об ошибке, если операция не удалась, и nil в противном случае. |
Возвращаемое значение
Этот метод не возвращает значение напрямую. Результат предоставляется через обратный вызов завершения.
Примеры использования
- Swift
- Objective-C
import AIBuds
class DeviceManager {
/// The connected device
weak var device: DeviceConvertible?
/// Performs factory reset on the connected device
func performFactoryReset() {
// Ensure the device supports factory reset protocol
guard let device = device as? DeviceCommonAPI else {
print("Device does not support factory reset")
return
}
// Execute factory reset with completion handler
device.factoryReset { [weak self] success, error in
// Handle failure case
if !success {
let errorMessage = {
if let error = error {
return "\(error)"
}
return "Unknown error"
}()
print("Factory reset failed: \(errorMessage)")
return
}
// Handle success case
print("Factory reset completed successfully")
}
}
}#import <AIBuds/AIBuds.h>
@interface DeviceManager ()
/// The connected device
@property(weak, nonatomic) id<AIBudsDeviceConvertible> device;
@end
@implementation DeviceManager
- (void)performFactoryReset {
__weak typeof(self) weakSelf = self;
id<AIBudsDeviceCommonAPI> device = (id<AIBudsDeviceCommonAPI>)self.device;
// Ensure the device supports factory reset protocol
if ([device conformsToProtocol:@protocol(AIBudsDeviceCommonAPI)]) {
// Execute factory reset with completion handler
[device factoryResetWithCompletion:^(BOOL success, NSError *_Nullable error) {
// Handle failure case
if (!success) {
NSLog(@"Factory reset failed: %@", error);
return;
}
// Handle success case
NSLog(@"Factory reset completed successfully");
}];
}
}
@endОбработка ошибок
Обработчик завершения может возвращать следующие типы ошибок:
Домен ошибок: AIBudsSDK.ErrorDomain
- Swift
- Objective-C
| Код ошибки | Описание | Предложение по восстановлению |
|---|---|---|
| .deviceNotConnected | Устройство не подключено | Убедитесь, что устройство сопряжено и подключено |
| .bleCommandExecFailedDueToTimeout | Время выполнения операции истекло | Повторите операцию |
| .deviceBusy | Устройство занято другой операцией | Подождите завершения текущих операций |
| .deviceNotSupport | Сброс до заводских настроек не поддерживается на этом устройстве | Проверьте возможности устройства перед вызовом |
| Код ошибки | Описание | Предложение по восстановлению |
|---|---|---|
| AIBudsSdkErrorCodeDeviceNotConnected | Устройство не подключено | Убедитесь, что устройство сопряжено и подключено |
| AIBudsSdkErrorCodeBleCommandExecFailedDueToTimeout | Время выполнения операции истекло | Повторите операцию |
| AIBudsSdkErrorCodeDeviceBusy | Устройство занято другой операцией | Подождите завершения текущих операций |
| AIBudsSdkErrorCodeDeviceNotSupport | Сброс до заводских настроек не поддерживается на этом устройстве | Проверьте возможности устройства перед вызовом |
Рекомендации
-
Подтвердите у пользователя: Всегда отображайте диалог подтверждения перед началом сброса до заводских настроек, так как эта операция необратима.
-
Обрабатывайте выполнение в фоне: При обновлении интерфейса оберните обработчик завершения в блок
DispatchQueue.main.async. -
Используйте слабую ссылку: Используйте
[weak self]в обработчике завершения, чтобы предотвратить циклы сильных ссылок. -
Проверяйте соответствие протоколу: Проверяйте, что устройство соответствует протоколу
DeviceCommonAPI, перед вызовом метода. -
Очищайте ссылки: После успешного сброса до заводских настроек может потребоваться повторное сопряжение устройства.
Примечания
- Сброс до заводских настроек может занять несколько секунд
- Устройство отключится и сбросится во время этой операции
- Все пользовательские данные, включая сопряженные устройства, настройки и сохраненные медиафайлы, будут удалены
- Устройство автоматически перезагрузится после завершения сброса