त्वरित शुरुआत
इस गाइड में AIBuds SDK iOS की बुनियादी सेटअप प्रक्रिया और आम तौर पर उपयोग होने वाले ऑपरेशन क्रमवार दिए गए हैं।
AI की सहायता से लागू करें
इस वर्कफ़्लो को AI से लागू करें
आधिकारिक “AIBuds SDK एकीकृत करें” स्किल से वर्कफ़्लो को अपने ऐप के अनुसार लागू करें।
https://docs-aibuds.github.io/hi/skills/integrate-aibuds-sdk को पढ़ें और निर्देशों का पालन करें। इस स्किल से “AIBuds SDK एकीकृत करें” को इस iOS प्रोजेक्ट में लागू करें और परिणाम सत्यापित करें।चरण 1: SDK इंपोर्ट करें
जिन फ़ाइलों में SDK उपयोग किया गया है, उनमें आवश्यक मॉड्यूल इंपोर्ट करें:
- Swift
- Objective-C
import AIBuds
import ABMate
import AIBudsLog
import AIBudsAIFoundation
import AIBudsAI
import AIBudsStarBurst
import AIBudsMagicHelper
import AIBudsVoiceAssistant
import AIBudsXLFacility
import AIBudsLiveStream
import AIBudsCrashReporter
import AIBudsAllInOne#import <ABMate/ABMate-Swift.h>
#import <AIBuds/AIBuds-Swift.h>
#import <AIBuds/AIBuds.h>
#import <AIBudsAI/AIBudsAI-Swift.h>
#import <AIBudsAIFoundation/AIBudsAIFoundation-Swift.h>
#import <AIBudsAllInOne/AIBudsAllInOne-Swift.h>
#import <AIBudsCrashReporter/AIBudsCrashReporter-Swift.h>
#import <AIBudsCrashReporter/AIBudsCrashReporter.h>
#import <AIBudsLiveStream/AIBudsLiveStream-Swift.h>
#import <AIBudsLog/AIBudsLog-Swift.h>
#import <AIBudsMagicHelper/AIBudsMagicHelper-Swift.h>
#import <AIBudsStarBurst/AIBudsStarBurst-Swift.h>
#import <AIBudsVoiceAssistant/AIBudsVoiceAssistant-Swift.h>
#import <AIBudsXLFacility/AIBudsXLFacility-Swift.h>चरण 2: SDK इनिशियलाइज़ करें
ऐप शुरू होते समय AIBuds SDK को इनिशियलाइज़ करें। यह आम तौर पर AppDelegate या SceneDelegate में किया जाता है:
- Swift
- Objective-C
// AppDelegate.swift
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
// Initialize AIBuds SDK with Full Installation
initWithFullInstallation()
// Initialize AIBuds SDK with Custom Installation
//initWithCustomInstallation()
return true
}
/// Initialize AIBuds SDK with Full Installation
private func initWithFullInstallation() {
// Initialize AIBuds SDK
if !AllInOneSDK.init(withDelegate: self) {
print("Failed to initialize AIBuds AllInOne SDK.")
}
// Install crash reporter
AllInOneSDK.installCrashReporter { reportFilePath in
print("Last crash report path: \(reportFilePath ?? "")")
} reportListUpdateCallback: {
print("Crash report list updated")
}
// Set user info for crash reporter
CrashReporterSDK.setUserInfo("Tom", forKey: "User Name")
CrashReporterSDK.setUserInfo("199", forKey: "User ID")
// Start AI dashboard
AllInOneSDK.startAIDashboard()
}
/// Initialize AIBuds SDK with Custom Installation
private func initWithCustomInstallation() {
// Set XLFacility plugin
AIBudsLogSDK.setXLFacilityPlugin(XLFacilitySDK.shared())
// Initialize AIBuds SDK with all Ble SDKs you would like to integrate into your app
let sdkConfiguration = SDKConfiguration.default()
// Set log level to verbose
sdkConfiguration.logLevel = .verbose
let success = AIBudsSDK.initialize(
[ABMateSDK.shared()],
configuration: sdkConfiguration,
delegate: self)
if !success {
print("AIBudsSDK initialize failed.")
}
// Install StarBurst AI plugin
AIBudsSDK.setStarBurstAIPlugin(StarBurstAuthPlugin.shared())
// Install MltCloud AI plugin
AIBudsSDK.setMltCloudAIPlugin(MltCloudAuthPlugin.shared())
// Install OnDeviceVoiceAssistant plugin
AIBudsSDK.setOnDeviceVoiceAssistantPlugin(OnDeviceVoiceAssistantPlugin.shared())
// Initialize AI SDK with all AI SDKs you would like to integrate into your app
let aiSuccess = AIBudsAISDK.initialize([
StarBurstSDK.shared(),
MagicHelperSDK.shared(),
])
if !aiSuccess {
print("AIBudsAISDK initialize failed.")
}
// Install crash reporter
CrashReporterSDK.installCrashReporter { reportFilePath in
print("Last crash report path: \(reportFilePath ?? "")")
} reportListUpdateCallback: {
print("Crash report list updated")
}
// Set user info for crash reporter
CrashReporterSDK.setUserInfo("Tom", forKey: "User Name")
CrashReporterSDK.setUserInfo("199", forKey: "User ID")
// Start AI dashboard
AIDashboardSDK.start()
}// AppDelegate.m
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Initialize AIBuds SDK with Full Installation
[self initWithFullInstallation];
// Initialize AIBuds SDK with Custom Installation
//[self initWithCustomInstallation];
return YES;
}
/// Initialize AIBuds SDK with Full Installation
- (void)initWithFullInstallation {
// Initialize AIBuds SDK
if (![AIBudsAllInOneSDK initWithDelegate:self]) {
NSLog(@"%@", @"Failed to initialize AIBuds AllInOne SDK.");
}
// Install crash reporter
[AIBudsAllInOneSDK
installCrashReporterWithLastCrashReportCallback:^(NSString *_Nullable reportFilePath) {
NSLog(@"Last crash report path: %@", reportFilePath);
}
reportListUpdateCallback:^{
NSLog(@"Crash report list updated");
}];
// Set user info for crash reporter
[AIBudsCrashReporterSDK setUserInfo:@"Tom" forKey:@"User Name"];
[AIBudsCrashReporterSDK setUserInfo:@"199" forKey:@"User ID"];
// Start AI dashboard
[AIBudsAllInOneSDK startAIDashboard];
}
/// Initialize AIBuds SDK with Custom Installation
- (void)initWithCustomInstallation {
// Set XLFacility plugin
[AIBudsLogSDK setXLFacilityPlugin:[AIBudsXLFacilitySDK shared]];
// Initialize AIBuds SDK with all Ble SDKs you would like to integrate into your app
AIBudsSDKConfiguration *sdkConfiguration = [AIBudsSDKConfiguration defaultConfiguration];
// Set log level to verbose
sdkConfiguration.logLevel = AIBudsLogLevelVerbose;
BOOL success = [AIBudsSDK initWithBleSDKs:@[ [ABMateSDK shared] ]
configuration:sdkConfiguration
delegate:self];
if (!success) {
NSLog(@"%@", @"AIBudsSDK initialize failed.");
}
// Install StarBurst AI plugin
[AIBudsSDK setStarBurstAIPlugin:[AIBudsStarBurstAuthPlugin shared]];
// Install MltCloud AI plugin
[AIBudsSDK setMltCloudAIPlugin:[AIBudsMltCloudAuthPlugin shared]];
// Install OnDeviceVoiceAssistant plugin
[AIBudsSDK setOnDeviceVoiceAssistantPlugin:[AIBudsOnDeviceVoiceAssistantPlugin shared]];
// Initialize AI SDK with all AI SDKs you would like to integrate into your app
success = [AIBudsAISDK
initWithAISDKs:@[ [AIBudsStarBurstSDK shared], [AIBudsMagicHelperSDK shared] ]];
if (!success) {
NSLog(@"%@", @"AIBudsAISDK initialize failed.");
}
// Install crash reporter
[AIBudsCrashReporterSDK
installCrashReporterWithLastCrashReportCallback:^(NSString *_Nullable reportFilePath) {
NSLog(@"Last crash report path: %@", reportFilePath);
}
reportListUpdateCallback:^{
NSLog(@"Crash report list updated");
}];
// Set user info for crash reporter
[AIBudsCrashReporterSDK setUserInfo:@"Tom" forKey:@"User Name"];
[AIBudsCrashReporterSDK setUserInfo:@"199" forKey:@"User ID"];
// Start AI dashboard
[AIDashboardSDK start];
}चरण 3: डिवाइस खोजें
उपलब्ध AIBuds डिवाइस खोजने के लिए स्कैन शुरू करें:
- Swift
- Objective-C
// Start scanning for devices
AIBudsSDK.startScanning(
deviceFoundHandler: { device, isExistingDevice in
print("Found device: \(device.name), RSSI: \(device.rssi)")
print(isExistingDevice ? "Already stored" : "New device")
},
completion: {
print("Scanning stopped")
}
)// Start scanning for devices
[AIBudsSDK startScanningWithTimeout:nil
deviceFoundHandler:^(id<AIBudsFoundDeviceConvertible> _Nonnull device,
BOOL isExistingDevice) {
NSLog(@"Found device: %@, RSSI: %@", device.name, device.rssi);
}
completion:^{
}];चरण 4: डिवाइस जोड़ें
खोजे गए डिवाइस को 'मेरे डिवाइस' में जोड़ने पर वह ऐप दोबारा खुलने के बाद भी उपलब्ध रहेगा। स्कैन से मिले FoundDeviceConvertible को makeStorableDeviceFromDiscovered(_:) से स्टोर किए जा सकने वाले रूप में बदलें, फिर StoredDevicesMgr से सहेजें:
- Swift
- Objective-C
func store(_ discoveredDevice: FoundDeviceConvertible) {
// Convert the SDK scan result into a persistent device.
guard let device = AIBudsSDK.makeStorableDeviceFromDiscovered(discoveredDevice) else {
return
}
// Optional app-owned display information.
device.screenName = device.name
device.thumbnail = UIImage(named: "icon.glasses")
device.customContent = "Smart Glasses"
if StoredDevicesMgr.addDevice(device) {
AIBudsSDK.stopScanning()
navigationController?.popViewController(animated: true)
}
}- (void)storeDiscoveredDevice:(id<AIBudsFoundDeviceConvertible>)discoveredDevice {
// Convert the SDK scan result into a persistent device.
id<AIBudsDeviceConvertible> device =
[AIBudsSDK makeStorableDeviceFromDiscovered:discoveredDevice];
if (device == nil) {
return;
}
// Optional app-owned display information.
device.screenName = device.name;
device.thumbnail = [UIImage imageNamed:@"icon.glasses"];
device.customContent = @"Smart Glasses";
if ([AIBudsStoredDevicesMgr addDevice:device]) {
[AIBudsSDK stopScanning];
[self.navigationController popViewControllerAnimated:YES];
}
}चरण 5: डिवाइस से कनेक्ट करें
सहेजे गए डिवाइस से ConnectParams के माध्यम से कनेक्ट करें। AI प्रमाणीकरण पैरामीटर देने पर SDK कनेक्शन के दौरान चुनी गई AI सेवाओं का प्रमाणीकरण भी करता है:
- Swift
- Objective-C
let device = devices[indexPath.item]
let param = ConnectParams()
let aiAuthParams = AIAuthParams()
// StarBurst AI auth
let starBurstAuthParams = StarBurstAIAuthParams()
starBurstAuthParams.productId = configs["STARBURST_PRODUCTID"]
if let ppeEnv = configs["STARBURST_PPEENV"] as? String, !ppeEnv.isEmpty {
starBurstAuthParams.ppeEnv = ppeEnv
}
aiAuthParams.starburst = starBurstAuthParams
// MltCloud AI auth
let mltCloudAuthParams = MltCloudAIAuthParams()
mltCloudAuthParams.channelId = configs["MLTCLOUD_CHANNELID"]
aiAuthParams.mltcloud = mltCloudAuthParams
param.aiAuthParams = aiAuthParams
param.userId = "199"
// Connect to the device
device.connect(param)id<AIBudsDeviceConvertible> device = self.devices[indexPath.item];
AIBudsConnectParams *param = [AIBudsConnectParams new];
AIBudsAIAuthParams *aiAuthParams = [AIBudsAIAuthParams new];
// StarBurst AI auth
AIBudsStarBurstAIAuthParams *starBurstAuthParams = [AIBudsStarBurstAIAuthParams new];
starBurstAuthParams.productId = configs[@"STARBURST_PRODUCTID"];
NSString *ppeEnv = configs[@"STARBURST_PPEENV"];
if ([ppeEnv isKindOfClass:[NSString class]] && [ppeEnv length] > 0) {
starBurstAuthParams.ppeEnv = ppeEnv;
}
aiAuthParams.starburst = starBurstAuthParams;
// MltCloud AI auth
AIBudsMltCloudAIAuthParams *mltCloudAuthParams = [AIBudsMltCloudAIAuthParams new];
mltCloudAuthParams.channelId = configs[@"MLTCLOUD_CHANNELID"];
aiAuthParams.mltcloud = mltCloudAuthParams;
param.aiAuthParams = aiAuthParams;
param.userId = @"199";
// Connect to the device
[device connectWithParams:param];चरण 6: कमांड भेजें
कनेक्शन बनने के बाद डिवाइस को कमांड भेजे जा सकते हैं:
- Swift
- Objective-C
// Example: Set device time
guard let device = device as? DeviceInfoAPI else { return }
let date = Date()
device.setDeviceTime(date) { success, statusCode, error in
if success {
print("Device time set successfully")
} else {
print("Failed to set device time: \(error?.localizedDescription ?? "Unknown error")")
}
}// Example: Set device time
id<AIBudsDeviceInfoAPI> device = (id<AIBudsDeviceInfoAPI>)self.device;
if ([device conformsToProtocol:@protocol(AIBudsDeviceInfoAPI)]) {
NSDate *date = [NSDate date];
[device
setDeviceTime:date
completion:^(BOOL success, NSNumber *_Nullable statusCode, NSError *_Nullable error) {
if (success) {
NSLog(@"Device time set successfully");
} else {
NSLog(@"Failed to set device time: %@", error.localizedDescription);
}
}];
}चरण 7: डिवाइस डेलीगेट इवेंट संभालें
कनेक्शन लाइफ़साइकल इवेंट पाने के लिए DeviceDelegate प्रोटोकॉल अपनाएँ। सभी मेथड @objc optional हैं, इसलिए केवल आवश्यक callback लागू करें:
- Swift
- Objective-C
// Mark your class as the device's delegate
device.delegate = self
// Implement the optional delegate methods
extension YourViewController: DeviceDelegate {
func didStartConnectingDevice(_ device: DeviceConvertible) {
print("Connecting to \(device.name)…")
}
func didConnectedToDevice(_ device: DeviceConvertible) {
print("Connected to \(device.name)")
}
func didFailToConnectDevice(_ device: DeviceConvertible?, error: NSError?) {
print("Failed to connect: \(error?.localizedDescription ?? "Unknown error")")
}
func device(_ device: DeviceConvertible?, didDisconnectWithError error: NSError?) {
if let error {
print("Disconnected with error: \(error.localizedDescription)")
} else {
print("Disconnected")
}
}
func deviceDidReady(_ device: DeviceConvertible) {
print("Device ready: \(device.name)")
}
/// ... other delegate methods...
}// YourViewController.h — declare conformance to AIBudsDeviceDelegate
@interface YourViewController : UIViewController <AIBudsDeviceDelegate>
@end
// YourViewController.m
@implementation YourViewController
// Mark your class as the device's delegate
self.device.delegate = self;
// Implement the optional delegate methods
- (void)didStartConnectingDevice:(id<AIBudsDeviceConvertible>)device {
NSLog(@"Connecting to %@…", device.name);
}
- (void)didConnectedToDevice:(id<AIBudsDeviceConvertible>)device {
NSLog(@"Connected to %@", device.name);
}
- (void)didFailToConnectDevice:(id<AIBudsDeviceConvertible>)device error:(NSError *)error {
NSLog(@"Failed to connect: %@", error.localizedDescription);
}
- (void)device:(id<AIBudsDeviceConvertible>)device didDisconnectWithError:(NSError *)error {
if (error) {
NSLog(@"Disconnected with error: %@", error.localizedDescription);
} else {
NSLog(@"Disconnected");
}
}
- (void)deviceDidReady:(id<AIBudsDeviceConvertible>)device {
NSLog(@"Device ready: %@", device.name);
}
/// ... other delegate methods...
@endचरण 8: डिवाइस डिस्कनेक्ट करें
डिवाइस का उपयोग पूरा होने पर उसे डिस्कनेक्ट करें:
- Swift
- Objective-C
// Disconnect from a device
device.disconnect()// Disconnect from a device
id<AIBudsDeviceConvertible> device = self.device;
[device disconnect];उदाहरण ऐप
वास्तविक ऐप में SDK के उपयोग का पूरा उदाहरण AIBudsSDK-Demo प्रोजेक्ट में उपलब्ध है।
आगे क्या करें
बुनियादी उपयोग समझने के बाद SDK की अन्य सुविधाएँ देखें: