日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

配網開發指南

本節將會介紹如何開發App端的設備配網、用戶綁定等功能。

概述

  • 配網部分,提供了以下頁面的開發方式:

    • 基于配網SDK自行開發配網界面(設備配網和設備綁定)。

      說明

      基于配網SDK開發的設備類型主要有WiFi、以太網、蜂窩網、藍牙、ZigBee、BLE Mesh。

  • 綁定部分,介紹了不同設備類型的綁定接口:

    • 基于token方式的設備綁定(Wi-Fi、以太網)。

    • 基于時間窗口方式的設備綁定(蜂窩網、藍牙、Zigbee、其他)。

基于配網SDK自行開發配網界面

  • Wi-Fi設備配網界面開發

  • Zigbee設備配網界面開發

    Zigbee設備的配網指的是將Zigbee設備連接到某個Zigbee網關的過程,Zigbee的配網流程如下圖所示。

    Zigbee配網流程

    • 指定網關的IoTID

      開發者可以根據用戶綁定的設備去拉取用戶綁定的Zigbee網關設備,并讓用戶從中選擇希望接入Zigbee設備的網關,從而明確網關的IoTID。

      拉取用戶已綁定設備列表的接口為:/uc/listBindingByAccount,詳細調用方法如下。

    • 指定Zigbee設備的ProductKey

      開發者可以通過掃碼方式獲取設備的ProductKey,或者通過列出Zigbee產品列表讓用戶選擇的方式獲知Zigbee設備的ProductKey

    • 配網引導

      由于不同Zigbee設備的配對按鈕位置與外觀不同,廠家要將自己Zigbee設備的配對按鍵的指示圖片放在生活物聯網平臺上,開發者可以通過待配網Zigbee設備的ProductKey去生活物聯網平臺獲取設備的配網引導頁面,顯示給用戶顯示如何啟動Zigbee設備的配網。

      獲取產品配網引導頁面的接口為/awss/enrollee/guide/get。調用方法請參見產品管理服務

    • 網關添加子設備

      調用云端接口讓網關進入允許添加設備狀態,并等待來自云端的配網結果。

      設置網關允許添加設備的接口為/thing/gateway/permit。調用方法請參見配網服務。

      等待配網結果的topic為/thing/topo/add/status,詳細調用方法如下。

      最后將接收到的配網結果向用戶顯示即可。

  • 以太網設備開發

    對于接入設備端SDK的以太網設備,配網SDK提供以太網設備的發現和獲取綁定token的能力。

    • 以太網設備發現

      以太網設備的發現依賴配網SDK來實現,詳細調用方法如下。

    • 以太網設備綁定

      以太網設備的綁定分為兩個部分:獲取綁定token和調用綁定接口。

  • 獲取以太網設備綁定token

  • 以太網設備獲取token和Wi-Fi設備獲取綁定token的邏輯是一致的,詳細調用方法如下。

調用平臺提供的配網插件

在產品-人機交互配網引導中,手動填寫配網引導頁面中的圖片和文字。該插件中兼容了Wi-Fi、以太網和蜂窩網的配網流程。其中Wi-Fi僅支持一鍵配網、設備熱點配網和手機熱點配網,如需其他配網方式,請使用基于配網SDK開發配網界面。

調用配網的插件如下。

  • 插件ID國內版:a123kfz2KdRdrfYc

  • 插件ID國際版:a223c2beCJQ2Xpk2

插件入參參數介紹如下。

屬性

說明

類型

是否必選

默認值

productKey

產品的唯一標識符。

String

deviceName

同一產品下,設備的唯一標識符。本地發現設備進入配網、GPRS設備掃碼配網時需用到該參數。

String

token

設備令牌,用于綁定設備時鑒權,本地發現已配網設備時需使用該參數。

String

addDeviceFrom

標識該設備是由路由器發現的或零配設備發現的待配設備,調用本地發現接口時會返回該值。該參數配置如下。

  • 零配:ZERO_DEVICE

  • 路由器配網:ROUTER

String

插件出參,退出配網流程。

屬性

類型

必選

默認值

productKey

String

deviceName

String

代碼示例

  • Android代碼示例:

    // 啟動插件
    Bundle bundle = new Bundle();
    bundle.putString("productKey", pk);
    Router.getInstance().toUrlForResult(activity, "link://router/connectConfig",{your_request_code}, bundle);
    
    // 接收配網結果
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        ...
        if (REQUEST_CODE_PRODUCT_ADD == requestCode) {
            if (Activity.RESULT_OK != resultCode) {
                // 配網失敗
                return;
            }
    
            String productKey = data.getStringExtra("productKey");
            String deviceName = data.getStringExtra("deviceName");
            // 配網成功
        } 
    
    }
                        
  • iOS代碼示例:

    NSMutableDictionary *options = [NSMutableDictionary dictionary];
    options[@"productKey"] = device.productKey;
    options[@"deviceName"] = device.deviceName;
    options[@"token"] = device.token;
    options[@"addDeviceFrom"] = device.addDeviceFrom;
    
    IMSRouterCallback block = ^(NSError *error, NSDictionary *info) {
        [self.navigationController popToViewController:self animated:YES];
    
        if (error) {
            // 處理錯誤信息
        } else if (info && [info count] > 0) {
            // 配網成功
        } else {
            // 配網正常退出...
        }
    };
    options[AKRouterCompletionHandlerKey] = block;
    // 配網插件id
    NSURL *url = [NSURL URLWithString:@"link://router/connectConfig"];
    //NSString *pluginId = @"a123kfz2KdRdrfYc"; //以國內版插件ID舉例, 此方法是老方法,現在統一用 router的方式調用
    //NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"link://plugin/%@", pluginId]];
    [[IMSRouterService sharedService] openURL:url options:options completionHandler:^(BOOL success) {
        if (!success) {
            // 進入配網插件失敗
        }
    }];
                        

設備綁定

設備綁定的流程圖如下。

綁定流程圖

API相關介紹如下。

  • Wi-Fi、以太網,使用基于token方式設備綁定接口。

  • 蜂窩網、藍牙、Zigbee、其他,使用基于時間窗口方式的綁定設備接口。

  • 更多配網相關API的介紹,如本地發現、配網、綁定等,請參見配網服務。

  • 用戶關系API的介紹,如解綁、查詢綁定關系、分享設備等,請參見用戶服務。

  • Android獲取設備token代碼示例如下。

    LocalDeviceMgr.getInstance().getDeviceToken(productKey, deviceName, 60*1000, new IOnDeviceTokenGetListener() {
        @Override
        public void onSuccess(String token) {
            // 獲取到綁定需要的token
            //TODO 用戶根據具體業務場景調用
        }
    
        @Override
        public void onFail(String reason) {
        }
    });
  • iOS獲取設備token代碼示例如下。

    [[IMLLocalDeviceMgr sharedMgr] getDeviceToken:self.productKey deviceName:self.deviceName timeout:60 resultBlock:^(NSString *token, BOOL boolSuccess) 
          {
              if (token && boolSuccess) {
                            // 獲取token成功
                                        }
                             else {
                            // 獲取token失敗
                                  }
            }
    ];