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

配網SDK

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

依賴SDK概述
API 通道提供云端API通道能力,需要完成該SDK的初始化。
身份認證提供云端API通道身份認證(需要零配發現能力的時候需要該依賴)。
Breeze-biz SDK提供藍牙輔助配網支持,依賴breeze-biz SDK。

SDK依賴

  • Maven倉庫地址
    // 阿里云倉庫地址,包括了IOT事業部開發的SDK
    maven {
        url "http://maven.aliyun.com/nexus/content/repositories/releases/"
    }
  • Gradle依賴
    compile ('com.aliyun.alink.linksdk:ilop-devicecenter:1.6.7.1'){
        transitive = true
    }
    // 如果需要藍牙輔助配網能力,請加上如下依賴;不需要藍牙輔助配網能力,則不需要加下面這個依賴;
    // compile ('com.aliyun.alink.linksdk:breeze-biz:1.1.4')

設備發現

配網SDK提供了局域網內發現已配網的設備,包括 WiFi 設備以及以太網設備,以及局域網內已上電的待配設備(前提是當前局域網內已經有一個已配好網的智能設備,且該設備具有發現待配網設備的能力)的能力。

設備發現相關API,請參見LocalDeviceMgr

  • 啟動設備發現。

    發現本地的已配網設備、零配、路由器發現的待配設備,或者符合adh_{pk}_{mac}格式的設備熱點設備。發現的待配設備信息可以作為后續設備配網的入參信息。如果您需要對已發現且已配網設備做過濾(如過濾已綁定的設備,不支持的設備等),請參見本地發現設備列表信息過濾

    // 開始發現設備
    // enumSet 是需要使用的防發現方式 EnumSet<DiscoveryType>, 請根據需要選擇發現方式,并添加對應的依賴;
    // 第三個參數是獲取零配或智能路由器發現的待配設備,請求時需要攜帶的參數
    LocalDeviceMgr.getInstance().startDiscovery(context, enumSet, null, new IDeviceDiscoveryListener() {
        @Override
        public void onDeviceFound(DiscoveryType discoveryType, List<DeviceInfo> list) {
            // 發現的設備
            // LOCAL_ONLINE_DEVICE 當前和手機在同一局域網已配網在線的設備
            // CLOUD_ENROLLEE_DEVICE 零配或智能路由器發現的待配設備
            // BLE_ENROLLEE_DEVICE 發現的是藍牙Wi-Fi雙模設備(藍牙模塊廣播的subType=2即為雙模設備)
            // SOFT_AP_DEVICE 發現的設備熱點
            // BEACON_DEVICE 一鍵配網發現的待配設備
            // APP_FOUND_BLE_MESH_DEVICE 本地藍牙Mesh發現的待配網設備
              // 注意:發現藍牙設備需添加 breeze-biz SDK依賴
        }
    });
  • 停止發現設備。

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

    // 停止設備發現
    LocalDeviceMgr.getInstance().stopDiscovery();

設備配網

配網設備可以是本地發現的待配設備,也可以是通過掃碼等其他途徑獲取的待配設備。更多配網方式請參見Android App Native開發配網。設備配置添加相關API說明,請參見AddDeviceBiz

  • 設置待配網設備信息
    DeviceInfo deviceInfo = new DeviceInfo();
    deviceInfo.productKey = "xx"; // 商家后臺注冊的 productKey,不可為空
    deviceInfo.deviceName = "xxx";// 設備名, 可為空
    deviceInfo.productId = "xxx";// 產品 ID, 藍牙輔助配網必須
    deviceInfo.id= "xxx";// 設備熱點的id,在發現熱點設備返回到APP的時候會帶這個字段
    // 設備熱點配網 ForceAliLinkTypeSoftAP  藍牙輔助配網 ForceAliLinkTypeBLE
    // 二維碼配網 ForceAliLinkTypeQR   手機熱點配網 ForceAliLinkTypePhoneAP
    // 一鍵配網 ForceAliLinkTypeBroadcast  零配 ForceAliLinkTypeZeroAP
    deviceInfo.linkType = "ForceAliLinkTypeNone"; // 默認一鍵配網
    
    //設置待添加設備的基本信息
    AddDeviceBiz.getInstance().setDevice(DeviceInfo deviceinfo);

    配網時,指定的配網方式 linkType,請參見LinkType

    設備信息相關實體類,請參見DeviceInfo

  • 開始設備配網

    上述設置好待添加設備信息,進入配網。調用startAddDevice接口進入配網流程。如果出現獲取在某些高版本手機無法獲取WiFi SSID,需要申請位置權限,并打開GPS。

    • 如使用手機熱點方式配網,linkType= "ForceAliLinkTypePhoneAP",需要用戶確保應用已具備了WRITE_SETTINGS權限,該權限需要APP動態申請。
    • 設備熱點配網必須要位置權限和GPS服務。
      // 開始添加設備
      AddDeviceBiz.getInstance().startAddDevice(context, new IAddDeviceListener(){
          @Override
          public void onPreCheck(boolean b, DCErrorCode dcErrorCode) {
              // 參數檢測回調
          }
      
          @Override
          public void onProvisionPrepare(int prepareType) {
              // 手機熱點配網、設備熱點配網、一鍵配網、藍牙輔助配網、二維碼配網會走到該流程,
                // 零配和智能路由器配網不會走到該流程。
              // prepareType = 1提示用戶輸入賬號密碼
              // prepareType = 2提示用戶手動開啟指定熱點 aha 12345678
              // 執行完上述操作之后,調用toggleProvision接口繼續執行配網流程
          }
      
          @Override
          public void onProvisioning() {
              // 配網中
          }
      
          @Override
          public void onProvisionStatus(ProvisionStatus provisionStatus) {
            // 二維碼配網會走到這里  provisionStatus=ProvisionStatus.QR_PROVISION_READY表示二維碼ready了
            // ProvisionStatus.QR_PROVISION_READY.message() 獲取二維碼內容
            // 注意:返回二維碼時已開啟監聽設備是否已配網成功的通告,并開始計時,UI端應提示用戶盡快掃碼;
            // 如果在指定時間配網超時了,重新調用開始配網流程并刷新二維碼;
          }
      
          @Override
          public void onProvisionedResult(boolean b, DeviceInfo deviceInfo, DCErrorCode errorCode) {
              // 配網結果 如果配網成功之后包含token,請使用配網成功帶的token做綁定
          }
      });

    配網回調接口,請參見IAddDeviceListener

  • 輸入賬號密碼

    在收到onProvisionPrepare回調后,引導用戶輸入ssidpassword,并調用此方法傳入ssidpasswordtimeout信息啟動配網。 只有廣播配網場景下,才會觸發 onProvisionPrepare 回調。如果出現部分手機一直無法獲取到ssid,可以打開 GPS 再獲取ssid(部分手機需要開啟 GPS 才能獲取到)。

    String ssid = "ssid";// 熱點配網的時候注意,要先獲取ssid,然后再開啟熱點,否則無法正確獲取到SSID
    String ssid = "xxxxxxxx";
    int timeout = 60;//單位秒,目前最短只能設置60S
    AddDeviceBiz.getInstance().toggleProvision(ssid, password, timeout);
  • 停止配網
    // 停止配網
    AddDeviceBiz.getInstance().stopAddDevice();
  • 設置配網模式
    String linkType = "ForceAliLinkTypeBroadcast";
    // 設置配網模式
    AddDeviceBiz.getInstance().setAliProvisionMode(linkType);

混淆配置

-keep public class com.aliyun.alink.business.devicecenter.** {*;}
-keep public class com.aliyun.alink.linksdk.alcs.coap.**{*;}

獲取設備綁定Token

設備綁定的時候除了需要productKeydeviceName,還需要一個設備端的 token,該接口提供從設備端獲取綁定 token 的功能。WiFi 設備或者以太網設備均可以使用該接口獲取綁定需要的 Token。以太網設備需要先獲取到設備的 productKeydeviceName,可以參考使用startDiscovery接口去獲取。

// 獲取設備綁定 token
LocalDeviceMgr.getInstance().getDeviceToken(context, productKey, deviceName, 60*1000, 5*1000, new IOnDeviceTokenGetListener() {
            @Override
            public void onSuccess(String token) {
                // TODO bind
            }

            @Override
            public void onFail(String reason) {
            }
        });

在插件中使用配網能力

如果需要在插件中使用配網能力,需要向BoneMobile容器中注冊配網API,請在插件加載前,調用如下注冊代碼:

BonePluginRegistry.register("BoneAddDeviceBiz",BoneAddDeviceBiz.class);
BonePluginRegistry.register("BoneLocalDeviceMgr",BoneLocalDeviceMgr.class);
BonePluginRegistry.register("BoneHotspotHelper",BoneHotspotHelper.class);