简体中文

Nebula接口

Kalay SDK 开发指南 | Android APIs - Nebula 接口

Nebula接口模块介绍

Nebula接口是Kalay SDK针对Android平台提供的核心设备交互接口集,主要用于设备绑定、Nebula协议连接、局域网设备搜索、Wi-Fi配置、区域设置等关键场景,为APP与Nebula协议设备的全生命周期交互提供标准化调用方式。

KY_nebulaLanSearch

功能描述:Nebula AP模式添加时,在局域网内搜索设备UDID列表。

接口定义

public static st_UDIDInfo[] KY_nebulaLanSearch(int timeoutMs);

参数说明

参数类型说明
timeoutMsint搜索的超时时间,单位为毫秒。

回调说明

暂无额外回调,搜索结果通过接口返回值直接返回

返回码

返回st_UDIDInfo[]类型数组:
  • 非空数组:包含搜索到的设备UDID信息
  • 空数组:未搜索到设备或搜索超时

代码示例

// 设置超时时间为3000毫秒,搜索本地UDID列表 int timeout = 3000; st_UDIDInfo[] udidList = KY_nebulaLanSearch(timeout); if (udidList != null && udidList.length > 0) {    // 处理搜索到的UDID列表    for (st_UDIDInfo info : udidList) {        Log.d("Nebula", "搜索到设备UDID: " + info.udid);    } } else {    Log.d("Nebula", "未搜索到设备或搜索超时"); }

KY_nebulaStartBind

功能描述:启动 Nebula 设备绑定流程,将设备与用户账号关联起来。

接口定义

public abstract void KY_nebulaStartBind(String udid,                                        Camera.BindType bindType,                                        String bindKey);

参数说明

参数类型说明
udidstring设备的唯一标识符(40位字符串)。
bindTypeCamera.BindType绑定类型枚举。详细定义参考:BindType 枚举
bindKeystring绑定密钥,其内容取决于 `bindType`:
  • 对于 PIN_CODE 绑定,`bindKey` 是设备的 PIN 码。
  • 对于 CREDENTIAL 绑定,`bindKey` 是设备的凭证。
  • 对于 AP 绑定,`bindKey` 是设备的AP模式密码。

BindType 枚举

枚举值枚举常量说明
0PIN_CODE通过PIN码进行远程绑定。
1CREDENTIAL通过凭证进行绑定。
2AP在设备的 AP 模式下进行局域网绑定。

回调说明

暂无额外回调,绑定结果需通过KY_registerSDKListener注册的全局监听器获取

返回码

暂无固定返回码,绑定结果通过SDK全局错误回调返回

代码示例

// AP模式绑定设备 String udid = "设备40位UDID序列号"; Camera.BindType bindType = Camera.BindType.AP; String bindKey = "AP模式绑定密码"; // 开始绑定 kyCamera.KY_nebulaStartBind(udid, bindType, bindKey);

KY_nebulaStopBind

功能描述:终止 Nebula 设备绑定流程,停止当前的绑定操作。

接口定义

public abstract void KY_nebulaStopBind();

参数说明

此接口无入参。

回调说明

停止绑定结果通过KY_registerSDKListener注册的全局监听器返回

返回码

暂无固定返回码,停止绑定状态通过SDK全局回调返回

代码示例

// 停止设备绑定操作 kyCamera.KY_nebulaStopBind();

KY_nebulaConnect

功能描述:通过 Nebula 协议与已绑定的设备建立连接并出图。

接口定义

// 基础版接口 public abstract void KY_nebulaConnect(String udid,                                    String credential,                                    String avToken,                                    String realm,                                    int channel,                                    boolean isDecode,                                    KYCamera.KYRenderType callbackType); // 带唤醒参数版接口 public abstract void KY_nebulaConnect(String udid,                                    String credential,                                    String avToken,                                    String realm,                                    boolean isWakeup,                                    boolean isNebulaOnly,                                    int channel,                                    boolean isDecode,                                    KYCamera.KYRenderType callbackType);

参数说明

参数类型说明
udidstring设备的唯一标识符(40位字符串)。
credentialstring设备的认证凭证,在绑定成功后获得。
avTokenstring连线所需的令牌,由AM Server提供。
realmstring认证领域,需要与设备配置保持一致。
isWakeupBoolean是否在连接前尝试唤醒设备。
isNebulaOnlyBoolean是否仅使用 Nebula 协议进行连接。
channelint要建立的 AV 通道号,通常为 0。
isDecodeBoolean是否自动解码视频流并显示,默认为 `true`。
callbackTypeKYCamera.KYRenderType视频数据输出格式枚举,参考:KYRenderType 枚举

KYRenderType 枚举

枚举值枚举常量说明
0OUTPUT_NULL输出数据为空。
1OUTPUT_YUV输出YUV格式视频数据(耗时)。
2OUTPUT_RGB_8888输出RGB_8888格式视频数据(耗时)。
3OUTPUT_RGB_565输出RGB_565格式视频数据(耗时)。
4OUTPUT_YUV_NV12输出YUV_NV12格式视频数据(耗时)。

回调说明

连接结果通过SDK的连接状态回调方法返回,包含连接成功/失败状态及错误信息;视频数据通过指定格式回调返回

返回码

失败信息可通过SDK全局错误回调的错误码判断具体连接失败原因

代码示例

// 设备连线并出图(基础版) String udid = "设备40位UDID"; String credential = "设备绑定凭证"; String avToken = "AM Server提供的Token"; String realm = "设备对应的realm"; int channel = 0; boolean isDecode = true; KYCamera.KYRenderType renderType = KYCamera.KYRenderType.OUTPUT_YUV_NV12; kyCamera.KY_nebulaConnect(udid, credential, avToken, realm, channel, isDecode, renderType); // 设备连线并出图(带唤醒参数版) boolean isWakeup = true; boolean isNebulaOnly = true; kyCamera.KY_nebulaConnect(udid, credential, avToken, realm,                        isWakeup, isNebulaOnly, channel, isDecode, renderType);

KY_nebulaSendData

功能描述:通过 Nebula 通道向设备发送 JSON 格式的指令数据,并等待响应。

接口定义

public abstract void KY_nebulaSendData(String jsonRequest, int timeoutMs);

参数说明

参数类型说明
jsonRequeststring要发送的指令数据,格式为 JSON 字符串。
timeoutMsint等待响应的超时时间,单位为毫秒。

回调说明

设备响应结果通过KY_registerSDKListener注册的监听器返回,超时或发送失败时无回调

返回码

无固定返回码,响应结果通过监听器回调的错误码判断,0 表示成功,非0为错误码

代码示例

// 构造JSON指令 JSONObject jsonCmd = new JSONObject(); try {    jsonCmd.put("cmd", "device_info");    jsonCmd.put("action", "get"); } catch (JSONException e) {    e.printStackTrace(); } String jsonRequest = jsonCmd.toString(); int timeoutMs = 5000; // 5秒超时 // 发送JSON指令 kyCamera.KY_nebulaSendData(jsonRequest, timeoutMs);

KY_nebulaSsidListReq

功能描述:向处于 AP 模式的设备发送请求,获取其周围可用的 Wi-Fi 网络列表(SSID 列表)。

接口定义

public abstract ListKY_nebulaSsidListReq();

参数说明

此接口无入参。

回调说明

暂无额外回调,Wi-Fi列表获取结果通过接口返回值直接返回

返回码

无固定返回码,通过返回列表长度判断结果(空列表表示获取失败)

代码示例

// 先进行AP模式绑定 String udid = "设备UDID"; Camera.BindType bindType = Camera.BindType.AP; String bindKey = "AP绑定密码"; kyCamera.KY_nebulaStartBind(udid, bindType, bindKey); // 获取设备WiFi列表 ListssidList = kyCamera.KY_nebulaSsidListReq(); if (ssidList != null && !ssidList.isEmpty()) {    // 遍历WiFi列表    for (String ssid : ssidList) {        Log.d("Nebula", "设备搜索到WiFi: " + ssid);    } } else {    Log.d("Nebula", "获取WiFi列表失败"); }

KY_nebulaSetWifiReq

功能描述:配置处于 AP 模式的设备,使其连接到指定的 Wi-Fi 网络。

接口定义

public abstract NebulaWiFiConfig.NebulaIOCtrlMsgSetWifiResp    KY_nebulaSetWifiReq(NebulaWiFiConfig.NebulaIOCtrlMsgSSIDListResp wifi,                        String password);

参数说明

参数类型说明
wifiNebulaWiFiConfig.NebulaIOCtrlMsgSSIDListResp目标 Wi-Fi 网络的信息对象,包含SSID等信息。
passwordstring目标 Wi-Fi 网络的密码。

回调说明

暂无额外回调,Wi-Fi配置结果通过接口返回值直接返回

返回码

配置结果通过返回对象中的code字段判断,0 表示成功,非0为错误码

代码示例

// 选择要连接的WiFi ListssidList = kyCamera.KY_nebulaSsidListReq(); String targetSsid = "目标WiFi名称"; NebulaWiFiConfig.NebulaIOCtrlMsgSSIDListResp wifiInfo = null; // 假设从ssidList中获取对应的wifiInfo对象 for (String ssid : ssidList) {    if (ssid.equals(targetSsid)) {        // 构建wifiInfo对象(实际需根据SDK返回的列表构建)        wifiInfo = new NebulaWiFiConfig.NebulaIOCtrlMsgSSIDListResp();        wifiInfo.ssid = targetSsid;        break;    } } // 设置WiFi密码 String wifiPassword = "WiFi密码"; NebulaWiFiConfig.NebulaIOCtrlMsgSetWifiResp resp =    kyCamera.KY_nebulaSetWifiReq(wifiInfo, wifiPassword); // 检查设置结果 if (resp != null && resp.code == 0) {    Log.d("Nebula", "WiFi设置成功"); } else {    Log.d("Nebula", "WiFi设置失败,错误码:" + (resp != null ? resp.code : -1)); }

KY_nebulaSetRegionReq

功能描述:设置Nebula设备的P2P分区分流区域信息。

接口定义

public abstract NebulaWiFiConfig.NebulaIOCtrlMsgSetRegionResp    KY_nebulaSetRegionReq(TUTKRegion region);

参数说明

参数类型说明
regionTUTKRegion区域代码枚举:
  • 0: 全部区域
  • 1: 大中华地区
  • 2: 欧洲
  • 3: 美洲

回调说明

暂无额外回调,区域设置结果通过接口返回值直接返回

返回码

设置结果通过返回对象中的状态码字段判断,0 表示成功

代码示例

// 设置P2P分区分流为大中华地区 TUTKRegion region = TUTKRegion.CN; // 假设TUTKRegion枚举值1对应CN NebulaWiFiConfig.NebulaIOCtrlMsgSetRegionResp resp =    kyCamera.KY_nebulaSetRegionReq(region); // 检查设置结果 if (resp != null && resp.success) {    Log.d("Nebula", "P2P分区分流设置成功"); } else {    Log.d("Nebula", "P2P分区分流设置失败:" + (resp != null ? resp.errorMsg : "未知错误")); }

即刻开启您的物联网之旅

联系解决方案专家
Kalay App
资讯安全白皮书
全球专利布局
解决方案
新闻动态
公司动态
行业资讯
媒体报道
永续发展
经营者的话
社会参与
环境永续
公司治理

+86 755 27702549

7×24小时服务热线

法律声明 隐私权条款

关注“TUTK”

TUTK服务尽在掌握

© 2022 物联智慧科技(深圳)有限公司版权所有粤ICP备14023641号
在线咨询
扫一扫

TUTK服务尽在掌握

全国免费服务热线
+86 755 27702549

返回顶部