小雅OS开放平台文档

小雅OS开放平台文档

  • 快速入门
  • 客户端接入
  • 服务端接入

›iOS SDK

概述

  • 客户端接入

API 接入

  • WebSocket接口协议定义
  • Http接口协议定义
  • 调用样例
  • API 列表
  • 实体列表
  • 错误码

设备端

    Android SDK

    • 配置工程
    • 初始化
    • 功能
    • 回调
    • Demo 使用
    • 更新日志

    iOS SDK

    • 配置工程
    • 初始化
    • 功能
    • 回调
    • 更新日志

    C++ SDK

    • SDK获取方法
    • 环境要求
    • 目录结构
    • SDK架构
    • 调用示例
    • 接口文档

手机伴侣

    Android SDK

    • 接入准备
    • 账号模块
    • 内容模块
    • 反向控制
    • 设备管理模块
    • 技能模块
    • 蓝牙模块
    • 更新日志

    iOS SDK

    • 接入准备
    • 账号模块
    • 内容模块
    • 反向控制
    • 设备管理模块
    • 技能模块

内容页

    Android

    • 更新日志
    • 初始化

    iOS

    • 更新日志
    • 初始化

设备管理模块

配网

请使用蓝牙为音箱配网,从服务端请求device code用于绑定音箱与账户,再通过蓝牙将配网信息发送给音箱,音箱开始联网。

请求device code

引用头文件:#import <XYServiceSDK/XYSDK+Account.h>,请求 device code接口:

/**
* 获取配网设备码
*/
+ (void)requestUserDeviceCodeCompletionBlock:(nullable void(^)(BOOL success, NSString* _Nullable deviceCode))block;

返回值如下:

@"eb9e8456345d424e88ca0fded939f316"

蓝牙相关接口

若使用SDK提供的蓝牙模块,请引用头文件:#import <XYServiceSDK/XYSDKBluetoothManager.h>。

搜索蓝牙设备列表

/**
 * 获取蓝牙设备列表
 * @param  prefixs 设备名称前缀数组(Nano、Home,@""代表不过滤)
 * @param completion 完成回调
 */
- (void)fetchPeripheralListWithPeripheralPrefixs:(NSArray <NSString *>*)prefixs completion:(void(^)(NSArray <XYPeripheral *>*))completion;

prefixs: 代表仅搜索对应前缀名称的蓝牙设备

开始连接设备

/**
 * 开始连接设备
 @param peripheral 连接的设备
 @param stateBlock 状态回调
 */
- (void)connectToPeripheral:(XYPeripheral *)peripheral completion:(XYBlueToothStateBlock)stateBlock;

中断连接

/**
 * 中断连接
 */
- (void)interruptConnect;

开始配网

/**
 * 开始连接设备
 @param password 密码(无密码传空字符串)
 @param ssid wifi名
 @param code 配网deviceCode(通过接口请求获取)
 @param isHideNet 是否为隐藏网络(YES 隐藏;NO 不隐藏)
 */
- (void)writeDataPassword:(NSString *)password ssid:(NSString *)ssid deviceCode:(NSString *)code isHideNet:(BOOL)isHideNet completion:(void(^)(BOOL isConnected, NSDictionary *__nullable deviceInfo, NSError *__nullable error))completion;

查询设备信息

引用头文件:#import <XYServiceSDK/XYSDK+Device.h>

获取用户的设备列表

/**
* 请求用户的设备列表
*/
- (void)requestDeviceListWithCompletion:(nullable void (^)(NSArray *__nullable deviceList, NSError *__nullable error))completion;

返回值为数组:

[{
                "speaker_version": "0.0.10",
                "speaker_id": 66,
                "product_id": "N_PROD1_7",
                "name": "未知音箱",
                "create_dt": "2019-06-27 19:55:40",
                "sn": "NANO00018C60074F",
                "product_name": "",
                "ssid": "XMLY-2.4",
                "client_id": "os.client.sdkdemo",
                "rom_version": "0.0.2",
                "mac": "14:16:9E:38:FD:FD"
            }, {
                "speaker_version": "0.0.10",
                "speaker_id": 38,
                "product_id": "1001",
                "name": "未知音箱",
                "create_dt": "2019-06-04 17:18:42",
                "sn": "YAMI00018A900041",
                "product_name": "",
                "ssid": "XMLY_VPN",
                "client_id": "os.client.000163",
                "rom_version": "0.0.1",
                "mac": "14:16:9E:2C:81:DE"
            }]

查询音箱在线状态

/**
 *  @brief 音箱在线状态获取
 *  @param sn   音箱sn(sn为空则查询当前设备)
 *  @param completion   完成回调
 */
- (void)requestDeviceStatus:(NSString *_Nonnull)sn completion:(nullable void (^)(NSDictionary *__nullable statusInfo, NSError *__nullable error))completion;

查询当前音箱信息

/**
 *  @brief 查询当前音箱信息
 *  @param completion   完成回调
*/
- (void)requestCurrentDeviceInfo:(nullable void (^)(NSDictionary *__nullable deviceInfo, NSError *__nullable error))completion;

解绑设备

引用头文件:#import <XYServiceSDK/XYSDK+Device.h> ,删除设备:

/**
* 请求用户的设备列表
*/
- (void)deleteDevice:(nonnull NSDictionary *)deviceInfo completion:(nullable void (^)(NSDictionary *__nullable responseInfo, NSError *__nullable error))completion;

deviceInfo: NSDictionary类型,包含设备sn和client_id,例如:@{@"sn": @"Nano123456", @"client_id": @"os.client.00016"}

音箱OTA升级

查询音箱是否有新版本

/**
 *  @brief 查询音箱是否有新版本
 *  @param deviceInfo  音箱信息 @{@"speaker_version": @"", @"sn": @"", @"rom_version": @""}
 *  @param completion  完成回调
 */
- (void)requestDeviceVersionInfo:(nonnull NSDictionary *)deviceInfo completion:(void (^__nullable)(NSDictionary *__nullable versionInfo, NSError *__nullable error))completion;

控制音响进行固件升级

/**
 *  @brief 控制音响进行固件升级
 *  @param deviceSn  音箱id
 *  @param completion  完成回调
 */
- (void)requestDeviceUpgrade:(NSString *_Nonnull)deviceSn completion:(void (^__nullable)(NSDictionary *__nullable info, NSError *__nullable error))completion;

获取音箱升级状态

/**
 *  @brief 轮询获取音箱升级状态(完成后应调用停止轮询的方法)
 *  @param deviceInfo  音箱信息 @{@"speaker_version": @"", @"sn": @"", @"rom_version": @""}
 *  @param completion  轮询时回调
 */
- (void)scheduleDeviceUpgradeStauts:(nonnull NSDictionary *)deviceInfo completion:(void (^__nullable)(NSDictionary *__nullable statusInfo, NSError *__nullable error))completion;

停止轮询升级状态

/**
 * @brief 停止轮询升级状态
 */
- (void)invalidateScheduleUpgradeStatus;

修改音箱信息

目前仅支持修改音箱名称:

/**
 *  @brief 修改音箱名称
 *  @param name  音箱名称
 *  @param completion  完成回调
 */
- (void)updateDeviceName:(NSString *_Nonnull)name completion:(void (^__nullable)(BOOL success, NSError *__nullable error))completion;
← 反向控制技能模块 →
  • 配网
    • 请求device code
    • 蓝牙相关接口
  • 查询设备信息
    • 获取用户的设备列表
    • 查询音箱在线状态
    • 查询当前音箱信息
  • 解绑设备
  • 音箱OTA升级
    • 查询音箱是否有新版本
    • 控制音响进行固件升级
    • 获取音箱升级状态
    • 停止轮询升级状态
  • 修改音箱信息
北京小雅星空科技有限公司 京ICP备19010603号