Перейти к основному содержимому

Сброс до заводских настроек

Операция сброса до заводских настроек восстанавливает устройство до исходных заводских настроек, удаляя все пользовательские данные и пользовательские конфигурации. Эта операция полезна при подготовке устройства к перепродаже или устранении постоянных проблем.

Предварительные условия

Перед выполнением сброса до заводских настроек убедитесь, что:

  • Устройство подключено и находится в стабильном состоянии
  • Все важные данные были резервно скопированы
  • Пользователь понимает, что все личные данные будут удалены

Реализация с помощью AI

Разработка с AI

Реализуйте этот сценарий с AI

Используйте официальный навык «Реализация сброса AIBuds» и адаптируйте сценарий к приложению.

Прочитайте и выполните инструкции https://docs-aibuds.github.io/ru/skills/implement-aibuds-factory-reset. Используйте этот навык, чтобы реализовать «Реализация сброса AIBuds» в данном iOS-проекте и проверить результат.
Открыть официальный навык

Справочник API

Фреймворк

AIBuds.xcframework

Импорт

В файлах, где вы хотите использовать SDK, импортируйте главный заголовок:

Swift
import AIBuds

Протокол

Метод factoryReset определен в следующем протоколе. Этот протокол наследуется от базового протокола API устройства.

Swift
/// 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?)
}

Метод экземпляра

Восстанавливает устройство до исходных заводских настроек, удаляя все пользовательские данные и пользовательские конфигурации.

iOS 13.0+

Swift
/// 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?)

Параметры

ПараметрТипОписание
completionAIBudsCompletionHandler?Необязательный обратный вызов завершения, вызываемый при завершении операции.

Параметры обратного вызова:

ИмяТипОписание
successBooltrue, если операция прошла успешно; иначе false
errorNSError?Содержит информацию об ошибке, если операция не удалась, и nil в противном случае.

Возвращаемое значение

Этот метод не возвращает значение напрямую. Результат предоставляется через обратный вызов завершения.

Примеры использования

Swift
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")
        }
    }
}

Обработка ошибок

Обработчик завершения может возвращать следующие типы ошибок:

Домен ошибок: AIBudsSDK.ErrorDomain

Код ошибкиОписаниеПредложение по восстановлению
.deviceNotConnectedУстройство не подключеноУбедитесь, что устройство сопряжено и подключено
.bleCommandExecFailedDueToTimeoutВремя выполнения операции истеклоПовторите операцию
.deviceBusyУстройство занято другой операциейПодождите завершения текущих операций
.deviceNotSupportСброс до заводских настроек не поддерживается на этом устройствеПроверьте возможности устройства перед вызовом

Рекомендации

  1. Подтвердите у пользователя: Всегда отображайте диалог подтверждения перед началом сброса до заводских настроек, так как эта операция необратима.

  2. Обрабатывайте выполнение в фоне: При обновлении интерфейса оберните обработчик завершения в блок DispatchQueue.main.async.

  3. Используйте слабую ссылку: Используйте [weak self] в обработчике завершения, чтобы предотвратить циклы сильных ссылок.

  4. Проверяйте соответствие протоколу: Проверяйте, что устройство соответствует протоколу DeviceCommonAPI, перед вызовом метода.

  5. Очищайте ссылки: После успешного сброса до заводских настроек может потребоваться повторное сопряжение устройства.

Примечания

  • Сброс до заводских настроек может занять несколько секунд
  • Устройство отключится и сбросится во время этой операции
  • Все пользовательские данные, включая сопряженные устройства, настройки и сохраненные медиафайлы, будут удалены
  • Устройство автоматически перезагрузится после завершения сброса