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

配網SDK

本章節提供了把WiFi設備配置上家庭路由器以及局域網內已聯網設備的發現能力,具體方案包括一鍵廣播配網、手機熱點配網、藍牙輔助配網、智能路由器配網以及設備間相互配網等。

依賴SDK

概述

日志

基礎依賴SDK,提供客戶端統一日志打印,日志等級控制,分模塊日志隔離等能力。

API通道

提供API通道能力,和基礎環境配置信息。

Breeze SDK

提供藍牙輔助配網支持。

初始化

初始化前需確保已集成安全圖片,初始化的操作請參見SDK初始化

使用說明

  • 設備發現

    提供獲取局域網內已經配網的設備,包括WiFi設備以及以太網設備,以及局域網內已上電的待配設備(前提是當前局域網內內已經有一個已配好網的智能設備,且該設備支持未待配設備進行配網的能力)。

    • 啟動發現設備

      發現本地的已配網設備,或者已配網設備、路由器發現的待配設備。發現的待配設備信息可以作為后續設備配網的入參信息。

      // 引入頭文件
      #import <IMSDeviceCenter/IMLDeviceCenter.h>
      
      // 本地發現入口
      [[IMLLocalDeviceMgr sharedMgr] startDiscovery:^(NSArray *devices, NSError *err) {
              //devices 為 IMLCandDeviceModel 對象array,
              // 可根據 IMLCandDeviceModel 中的 devType 區分待配網設備聯網類型:
              // 0代表wifi設備;1代表ethernet設備(網線連接):2代表路由器 ; @"ble_subtype_2" 代表藍牙輔助配網設備*/
          }];
    • 獲取所有已發現設備

      // 引入頭文件
      #import <IMSDeviceCenter/IMLDeviceCenter.h>
      
      NSArray *allLanDevicesArray = [kLKLocalDeviceMgr getLanDevices];
    • 終止發現設備

      停止發現本地已配和線上待配設備,調用該接口會清除已發現設備列表,確保和startDiscovery成對調用。

      // 引入頭文件
      #import <IMSDeviceCenter/IMLDeviceCenter.h>
      
      // 停止發現設備
      [kLKLocalDeviceMgr stopDiscovery];
  • 通用配網流程

    • 設置待添加設備信息

      待添加設備信息來源可以為上面本地發現的待配設備,也可以通過掃碼等其他途徑獲取待配設備信息。

      // 引入頭文件
      #import <IMSDeviceCenter/IMLDeviceCenter.h>
      
      // 選取本地發現的待配設備
      IMLCandDeviceModel *model = self.localDeviceList[index];
      [kLkAddDevBiz setDevice:model];
      說明

      其中(IMLCandDeviceModel *)model 為本地發現待配設備或者云端拉取產品列表組裝的model。

      本地發現設備參見上述設備發現部分內容。

      IMLCandDeviceModel 屬性說明如下:

      屬性

      類型

      是否必選

      描述

      productKey

      NSString

      設備的ProductKey

      deviceName

      NSString

      設備名稱

      productId

      NSString

      待配設備產品ID,藍牙輔助配網時為必選參數

      linkType

      assign

      指定配網方式

      • ForceAliLinkTypeBroadcast:一鍵廣播配網;

      • ForceAliLinkTypeHotspot:手機熱點配網;

      • ForceAliLinkTypeSoftap:設備熱點配網;

      • ForceAliLinkTypeQR:攝像頭掃碼配網;

      • ForceAliLinkTypeBLE:藍牙輔助配網。

    • 設置配網模式

      // 引入頭文件
      #import <IMSDeviceCenter/IMLDeviceCenter.h>
      
      [kLkAddDevBiz setAliProvisionMode:ForceAliLinkTypeHotspot];
    • 開始設備配網

      上述設置好待添加設備信息,進入配網。調用startAddDevice接口進入配網流程,并實現監聽的協議方法。

      // 引入頭文件
      #import <IMSDeviceCenter/IMLDeviceCenter.h>
      
      [kLkAddDevBiz startAddDevice:self];
      
      其中 self 為配網過程中 notifier 監聽回調對象(代理)
      - (void)notifyPrecheck:(BOOL)success withError:(NSError *)err
      {
          NSLog(@"notifyPrecheck callback err : %@", err);
          dispatch_async(dispatch_get_main_queue(), ^{
              [self.addVC notifyProgress:LKAddStatePrechecking result:nil withError:err];
          });
      }
      
      // 用戶引導頁(一鍵配網和熱點配網會有相關回調,指引用戶接入相關操作)
      - (void)notifyProvisionPrepare:(LKPUserGuideCode)guideCode
      {
          NSLog(@"notifyProvisionPrepare callback guide code : %ld", guideCode);
          if(guideCode == LKPGuideCodeOnlyInputPwd){
              // TODO:一鍵廣播配網相關引導
          } else if(guideCode == LKPGuideCodeWithUserGuide){
              // TODO:手機熱點配網相關引導
          } else if(guideCode == LKPGuideCodeWithUserGuideForSoftAp) {
              // TODO:設備熱點配網相關引導
          } else if(guideCode == LKPGuideCodeWithUserGuideForQR) {
              // TODO:攝像頭掃碼配網相關引導
          }
      
      
      }
      
      -(void)notifyProvisioning
      {
          NSLog(@"notifyProvisioning callback(正在進行配網...) ");
      }
      
      /**
      手機熱點配網狀態回掉調,提示用戶關閉熱點并切回以前的wifi,optional。
       */
      - (void)notifyProvisioningNotice{
          NSLog(@"notifyProvisioningNotice");
      }
      
      /*
       設備熱點狀態回調,optional。
      status 狀態碼 1=提示應該切換到設備熱點; 2=已經切換到設備熱點 3=已發送數據(dic里面會有"token") 4=應該切換回路由器 5=已經切換回路由器
      */
      - (void)notifyProvisioningNoticeForSoftAp:(int)status withInfo:(NSDictionary *)dic
      {
          NSLog(@"notifyProvisioningNoticeForSoftAp,%d,%@",status,dic);
      }
      
      /**
      攝像頭二維碼配網模式相關回調,optional
       @param qrcode 需要UI展現的二維碼內容
       */
      - (void)notifyProvisioningNoticeForQR:(NSString *) qrcode;
      
      
      /**
       通知上層UI:配網完成結果回調
      
       @param candDeviceModel 配網結果設備信息返回:配網失敗時為 nil
       @param provisionError 錯誤信息
       */
      - (void)notifyProvisionResult:(IMLCandDeviceModel *)candDeviceModel withProvisionError:(NSError *)provisionError
      {
          NSLog(@"配網成功:%@",candDeviceModel);
      }
    • 輸入配網WiFi名稱以及密碼信息

      在收到- (void)notifyProvisionPrepare:(LKPUserGuideCode)guideCode回調引導完成相關操作(一鍵廣播指引用戶輸入ssid和密碼,熱點配網指引用戶開啟熱點,輸入ssid和密碼等)后,調用- (void)toggleProvision:(NSString *)ssid pwd:(NSString *)pwd timeout:(int)timeout方法,傳入WiFi的ssidpassword信息。

      說明

      一鍵廣播配網和熱點配網才會有notifyProvisionPrepare回調。

      // 引入頭文件
      #import <IMSDeviceCenter/IMLDeviceCenter.h>
      
      - (void)notifyProvisionPrepare:(LKPUserGuideCode)guideCode
      {
          NSLog(@"notifyProvisionPrepare callback guide code : %ld", guideCode);
          [self inputSsidAndPassword];
      }
      
      - (void)inputSsidAndPassword
      {
          NSSstring *ssid = @"example ssid";
          NSString *password = @"1qaz@WSX";
          NSInterger timeout = 60;(單位秒,s);
          [kLkAddDevBiz toggleProvision:ssid pwd:password timeout:timeout];
      }
    • 配網過程關鍵節點監聽處理

      針對熱點配網必須監聽該回調。

      // 引入頭文件
      #import <IMSDeviceCenter/IMLDeviceCenter.h>
      
      - (void)notifyProvisionStatus:(LKProvisonStatus)provisionStatus boolSuccess:(BOOL)boolSuccess;
      {
          NSLog(@"notifyProvisionStatus callback provisionStatus:%d boolSuccess:%d", provisionStatus, boolSuccess);
          if(provisionStatus == LKProvisonStatusSwitchAP){
              // 設備回復 switch ap 請求,提示用戶切換回之前的 wifi
              NSLog(@"請立即切換回開啟熱點之前的 wifi 網絡");
          }
      }
    • 配網結果監聽

      - (void)notifyProvisionResult:(IMLCandDeviceModel *)candDeviceModel withProvisionError:(NSError *)provisionError
      {
          if(candDeviceModel != nil){
              NSLog(@"配網成功:%@",candDeviceModel);
          } else{
              NSLog(@"配網失敗,錯誤信息:%@", provisionError);
          }
      
      }
    • 停止配網

      // 引入頭文件
      #import <IMSDeviceCenter/IMLDeviceCenter.h>
      
      [kLkAddDevBiz stopAddDevice];
  • 設備綁定

    當完成設備配網之后,后續需要將設備與用戶或者與家庭做一個關聯綁定,在綁定的時候需要調用SDK的獲取token方法,取得設備token,然后進行設備綁定。獲取token的代碼如下。

    // 引入頭文件
    #import <IMSDeviceCenter/IMLDeviceCenter.h>
    
    // self.productKey 和 self.deviceName 是配網成功后返回的物模型中的 productKey 和 deviceName
    [[IMLLocalDeviceMgr sharedMgr] getDeviceToken:self.productKey deviceName:self.deviceName timeout:20 resultBlock:^(NSString *token, BOOL boolSuccess) {
        NSLog(@"主動獲取設備token:%@,boolSuccess:%d", token, boolSuccess);
        if(token){
        // 調用綁定接口進行設備綁定
        } else{
            NSLog(@"獲取token失敗(超時)");
        }
    }];

使用配網插件

配網插件基于Bone容器實現了完整的配網邏輯,因此在接入Bone容器的前提下,可以直接打開配網插件來完成配網邏輯,然后再自行處理配網之后的邏輯。

目前配網插件ID如下所示:

  • 插件ID國內版:a123kfz2KdRdrfYc

  • 插件ID國際版:a223c2beCJQ2Xpk2

插件ID的具體使用方式,參考見Bone容器部分。也可以參見配網開發指南中調用平臺提供的配網插件的內容。

使用配網插件