Skip to main content

Query Storage Information

Request the latest storage information from a connected device, then read the updated storageInfo property.

Prerequisites

Before querying storage information, ensure:

  • The device is connected and in a stable state
  • The device supports the DeviceInfoAPI protocol

API Reference

Framework

AIBuds.xcframework

Import

In the files where you want to use the SDK, import the main framework:

Swift
import AIBuds

Protocol

The request method and result property are defined in DeviceInfoAPI.

Swift
protocol DeviceInfoAPI: DeviceAPI {
    /// Device storage information.
    var storageInfo: StorageInfoModel? { get }

    /// Request to query the device storage information.
    /// - Parameters:
    ///   - completion: A closure that is called when the operation completes.
    ///   - 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 requestQueryStorageInfo(
        _ completion: AIBudsCompletionHandler?
    )
}

Instance Method

Requests the latest device storage information.

Swift
/// Request to query the device storage information.
/// - Parameters:
///   - completion: A closure that is called when the operation completes.
///   - 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 requestQueryStorageInfo(
    _ completion: AIBudsCompletionHandler?
)

Parameters

ParameterTypeDescription
completionAIBudsCompletionHandler?Optional completion handler called when the request finishes.

Callback Parameters:

NameTypeDescription
successBool / BOOLtrue if the request succeeded; otherwise false.
errorNSError?Error details if the request failed; otherwise nil.

Result Properties:

PropertyTypeDescription
usedSpaceInMBNSNumberUsed storage space in megabytes.
freeSpaceInMBNSNumberRemaining available storage space in megabytes.

Return Value

The method does not return storage data in its completion handler. After a successful request, read the updated storageInfo property.

Usage Examples

Swift
import AIBuds

final class DeviceManager {
    weak var device: DeviceConvertible?

    func queryStorageInformation() {
        guard let device = device as? DeviceInfoAPI else {
            print("Device does not support storage queries")
            return
        }

        device.requestQueryStorageInfo { success, error in
            guard success else {
                print("Storage query failed: \(error?.localizedDescription ?? "Unknown error")")
                return
            }

            guard let storage = device.storageInfo else {
                print("The device did not provide storage information")
                return
            }

            print("Used storage: \(storage.usedSpaceInMB) MB")
            print("Free storage: \(storage.freeSpaceInMB) MB")
        }
    }
}

Error Handling

  1. Check success before reading the refreshed property.
  2. Use error for failure details when the request does not succeed.
  3. Handle a nil storageInfo value even after a successful callback.
  4. Do not assume fixed error codes unless they are documented for the target device.

Best Practices

  1. Read After Success: Access storageInfo only after the query completes successfully.
  2. Keep the SDK Unit: Treat both values as megabytes; do not interpret them as bytes.
  3. Check Protocol Conformance: Confirm that the device supports DeviceInfoAPI.
  4. Update UI on the Main Queue: Dispatch completion-driven UIKit updates to the main queue.

Notes

  • The completion handler reports request status; it does not contain a StorageInfoModel result.
  • StorageInfoModel exposes only used and free space in megabytes.
  • The SDK does not expose a separate total-capacity property in this model.
  • Storage information can change while media is recorded, imported, or deleted.