-
Notifications
You must be signed in to change notification settings - Fork 0
Getting Started Configuration
Configure logging, Bluetooth scanning, device connections, and AI services before using the corresponding SDK features.
Set the log level on the configuration passed to SDK initialization.
let sdkConfiguration = SDKConfiguration.default()
// Default: .info
// All-in-One uses .verbose only when it creates this configuration for you.
sdkConfiguration.logLevel = .info
let initialized = AIBudsAllInOneSDK.initialize(
configuration: sdkConfiguration,
delegate: self
)
guard initialized else {
print("AIBuds SDK initialization failed.")
return
}
// Log levels, from most to least verbose:
// .verbose, .debug, .info, .warn, .error, .fatal, .mute
// Modular installation:
// AIBudsSDK.initialize(appDelegate, configuration: sdkConfiguration, delegate: self)AIBudsSDKConfiguration *sdkConfiguration = [AIBudsSDKConfiguration defaultConfiguration];
// Default: AIBudsLogLevelInfo
// All-in-One uses Verbose only when it creates this configuration for you.
sdkConfiguration.logLevel = AIBudsLogLevelInfo;
BOOL initialized = [AIBudsAllInOneSDK initWithConfiguration:sdkConfiguration delegate:self];
if (!initialized) {
NSLog(@"AIBuds SDK initialization failed.");
return;
}
// Log levels, from most to least verbose:
// Verbose, Debug, Info, Warn, Error, Fatal, and MuteSee Quick Start for the modular initialization sequence.
Select the destination through the shared LogConfiguration.
let logConfig = LogConfiguration.shared
// Default: .xlfacility
logConfig.destination = .console
// Available destinations:
// .console — Xcode debugger console
// .oslogger — Unified logging through os_log
// .file — SDK-managed files on disk
// .xlfacility — XLFacility plugin
// All-in-One installs the XLFacility plugin automatically.
// Modular integrations must install AIBudsSDK/Log/XLFacility explicitly.AIBudsLogConfiguration *logConfig = [AIBudsLogConfiguration shared];
// Default: AIBudsLogDestinationXlfacility
logConfig.destination = AIBudsLogDestinationConsole;
// Available destinations:
// Console, Oslogger, File, and Xlfacility
// All-in-One installs the XLFacility plugin automatically.
// Modular integrations must install AIBudsSDK/Log/XLFacility explicitly.See Logging Overview for retention, export, and cleanup.
Configure the default timeout before initialization, or override it for one scan.
// Defaults:
// scanTimeoutInSeconds = 10; use 0 for no automatic timeout.
// shouldAutoReconnectWhenAppLaunch = false
// onlyDiscoverKnownDevices = true
let sdkConfiguration = SDKConfiguration.default()
sdkConfiguration.scanTimeoutInSeconds = 15
// 15 overrides the initialized configuration for this scan only.
AIBudsSDK.startScanning(
NSNumber(value: 15),
deviceFoundHandler: { device, isExistingDevice in
// isExistingDevice is true when an existing result was updated.
},
completion: {
// Called when scanning stops.
}
)
// Use the timeout supplied during SDK initialization.
AIBudsSDK.startScanning(nil)// Defaults:
// scanTimeoutInSeconds = 10; use 0 for no automatic timeout.
// shouldAutoReconnectWhenAppLaunch = NO
// onlyDiscoverKnownDevices = YES
AIBudsSDKConfiguration *sdkConfiguration = [AIBudsSDKConfiguration defaultConfiguration];
sdkConfiguration.scanTimeoutInSeconds = 15;
// @15 overrides the initialized configuration for this scan only.
[AIBudsSDK
startScanningWithTimeout:@15
deviceFoundHandler:^(id<AIBudsFoundDeviceConvertible> device, BOOL isExistingDevice) {
// isExistingDevice is YES when an existing result was updated.
}
completion:^{
// Called when scanning stops.
}];
// Use the timeout supplied during SDK initialization.
[AIBudsSDK startScanningWithTimeout:nil deviceFoundHandler:nil completion:nil];Pass connection-specific values through ConnectParams.
let params = ConnectParams()
params.userId = currentUserId // Only when required by the integration.
params.randomCode = devicePairingCode // Only when required by the device.
params.enableClassicBT = true // Default: true; false enables BLE-only use.
params.aiAuthParams = aiAuthParams // Only when required by the AI provider.
device.connect(params)AIBudsConnectParams *params = [[AIBudsConnectParams alloc] init];
params.userId = currentUserId; // Only when required by the integration.
params.randomCode = devicePairingCode; // Only when required by the device.
params.enableClassicBT = YES; // Default: YES; NO enables BLE-only use.
params.aiAuthParams = aiAuthParams; // Only when required by the AI provider.
[device connectWithParams:params];Select the provider after installing, registering, and initializing it.
// 1. Install the provider module.
// 2. Register and initialize the provider with AIBudsAISDK.
// 3. Select the registered provider.
AIBudsAISDK.setAIServiceVendor(.starBurst)
// Other public values:
// .mltcloud
// .none // No provider is selected.// 1. Install the provider module.
// 2. Register and initialize the provider with AIBudsAISDK.
// 3. Select the registered provider.
[AIBudsAISDK setAIServiceVendor:AIBudsAIServiceVendorStarBurst];
// Other public values:
// AIBudsAIServiceVendorMltcloud
// AIBudsAIServiceVendorNoneSee Select AI Provider for the complete provider setup.
Now that you have configured the SDK, continue with Core Concepts, use the SDK Glossary for terminology, explore Core Features, or use Common Issues when initialization, scanning, connection, or provider selection does not behave as expected.
AIBuds SDK documentation · Full documentation · API Reference
- Introduction
- Getting Started
- Core Concepts
-
Core Features
- Basic Features
- Device Info
- Find Device
- Physical Operations
- Work Mode
- Work Status
- Wear Detection
- Volume Control
- Music Control
- TWS
- Equalizer
- ANC
- Audio
- Camera
- Remote Camera
- File Import
- Teleprompter
- Segment Navigation
- Live Streaming
- Device Applications
- OTA
- Camera OTA
- Service Auth
- AI Services
- Voice Assistant
- Logging
- Advanced Topics
- Releases
- Troubleshooting