-
Notifications
You must be signed in to change notification settings - Fork 0
Voice Assistant Get Offline Support
Mr.P edited this page Aug 29, 2026
·
2 revisions
Read the connected device's voice-assistant capability before displaying mode controls.
- The device is connected and ready.
- The device conforms to
OnDeviceVoiceAssistantAPI.
AIBuds.xcframework
import AIBuds
import AIBudsFoundation#import <AIBuds/AIBuds-Swift.h>/// The protocol for the on-device voice assistant API.
protocol OnDeviceVoiceAssistantAPI: DeviceAPI {
/// The capability of the on-device voice assistant.
var onDeviceVoiceAssistantCapability: OnDeviceVoiceAssistantCapability { get }
}/// The protocol for the on-device voice assistant API.
@protocol AIBudsOnDeviceVoiceAssistantAPI <AIBudsDeviceAPI>
/// The capability of the on-device voice assistant.
@property(nonatomic, readonly)
AIBudsOnDeviceVoiceAssistantCapability onDeviceVoiceAssistantCapability;
@endSee onDeviceVoiceAssistantCapability and OnDeviceVoiceAssistantCapability.
guard let voiceAssistant = device as? OnDeviceVoiceAssistantAPI else {
supportLabel.text = "Not supported"
return
}
switch voiceAssistant.onDeviceVoiceAssistantCapability {
case .none:
supportLabel.text = "No voice-command capability"
case .keywordWakeup:
supportLabel.text = "Keyword wake-up"
case .common:
supportLabel.text = "Common voice commands"
}id<AIBudsOnDeviceVoiceAssistantAPI> voiceAssistant =
(id<AIBudsOnDeviceVoiceAssistantAPI>)self.device;
if (![voiceAssistant conformsToProtocol:@protocol(AIBudsOnDeviceVoiceAssistantAPI)]) {
self.supportLabel.text = @"Not supported";
return;
}
switch (voiceAssistant.onDeviceVoiceAssistantCapability) {
case AIBudsOnDeviceVoiceAssistantCapabilityNone:
self.supportLabel.text = @"No voice-command capability";
break;
case AIBudsOnDeviceVoiceAssistantCapabilityKeywordWakeup:
self.supportLabel.text = @"Keyword wake-up";
break;
case AIBudsOnDeviceVoiceAssistantCapabilityCommon:
self.supportLabel.text = @"Common voice commands";
break;
}- Protocol conformance and capability are separate checks. A conforming device can still report
.none. - Capability is a property, not an asynchronous query.
- Use capability to restrict the modes presented by the UI.
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