メインコンテンツまでスキップ

出荷時設定にリセット

出荷時設定リセット操作により、デバイスは元の出荷時設定に復元され、すべてのユーザーデータとカスタム設定が消去されます。この操作は、デバイスを再販売する準備をするときや、持続的な問題をトラブルシューティングするときに便利です。

前提条件

出荷時設定リセットを実行する前に、以下を確認してください:

  • デバイスが接続されており、安定した状態にある
  • すべての重要なデータがバックアップされている
  • ユーザーがすべての個人データが消去されることを理解している

AI を活用して実装

AI で実装

AI でこのワークフローを実装

公式の「AIBuds の初期化を実装」スキルを使い、アプリに合わせて実装します。

https://docs-aibuds.github.io/ja/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?操作が完了したときに呼び出されるオプションの完了コールバックです。

コールバックパラメータ:

名前説明
successBool操作が成功した場合は true、それ以外は 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. バックグラウンド実行の処理: UI を更新する場合は、完了ハンドラを DispatchQueue.main.async ブロックで囲んでください。
  3. 弱参照を使用する: 保持サイクルを防ぐために、完了ハンドラで [weak self] を使用してください。
  4. プロトコル準拠の確認: メソッドを呼び出す前に、デバイスが DeviceCommonAPI プロトコルに準拠していることを確認してください。
  5. 参照のクリーンアップ: 出荷時設定リセットに成功した後、デバイスを再度ペアリングする必要がある場合があります。

注意事項

  • 出荷時設定リセットは完了までに数秒かかる場合があります
  • この操作中、デバイスは切断されてリセットされます
  • ペアリングされたデバイス、設定、保存されたメディアを含むすべてのユーザーデータが消去されます
  • リセット完了後、デバイスは自動的に再起動します