當您開發自有App,下載并集成SDK后,需要對所有SDK進行初始化。
概述
API Level 8及以上版本SDK的初始化不再需要挨個初始化SDK,而可以使用統一的初始化接口,一次性完成所有的所需SDK的初始化。如果您使用的是API Level 7或以下版本,建議您升級至最新版本API Level 10,詳細請參見SDK升級。
統一初始化接口會根據您下載SDK時勾選的SDK配置項,一次性完成以下SDK的初始化。
API通道SDK (必選初始化)
賬號及用戶SDK (必選初始化)
身份認證SDK(必選初始化)
長連接通道SDK
物模型SDK
移動應用推送SDK
BoneMobile容器SDK
Link Visual視頻Media SDK
統一初始化目前只支持帶參數初始化一種方式,詳情如下。
帶參數初始化支持自定義,包括選擇接入類型(中國內地或全球)、是否打開日志,以及定制三方通道離線推送參數等。
SDK初始化
下載并集成SDK。詳細操作請參見下載并集成SDK。
初始化SDK。
帶參數初始化
// 初始化參數配置 IoTSmart.InitConfig initConfig = new IoTSmart.InitConfig() // REGION_ALL表示連接全球多個接入點;REGION_CHINA_ONLY表示直連中國內地接入點 .setRegionType(IoTSmart.REGION_ALL) // setProductEnv是API Level 8專用,API Level 9及以上版本使用IoTSmart.setProductScope來區分App是否操作未發布產品,且不再區分測試版與正式版,統一為正式版 .setProductEnv(IoTSmart.PRODUCT_ENV_PROD) // 是否打開日志 .setDebug(true); //方案一:用戶傳入 appkey 和 appsecret;用戶需要自行對appkey 和 appsecret進行安全性保存 IoTSmart.AppKeyConfig keyConfig = new IoTSmart.AppKeyConfig(); keyConfig.appKey = "appKey";//替換為平臺申請的appKey keyConfig.appSecret = "appSecret";//替換為平臺申請的appSecret initConfig.setAppKeyConfig(keyConfig); //方案二:用戶傳入 實現了ISecuritySource接口的類;詳情請參考下方《用戶自簽名代碼參考》 SecurityImpl customSecurityImp=new SecurityImpl(); initConfig.setCustomSecurity(customSecurityImp); // 定制三方通道離線推送,目前支持華為、小米、OPPO、VIVO IoTSmart.PushConfig pushConfig = new IoTSmart.PushConfig(); pushConfig.xiaomiAppId = "XiaoMiAppId"; // 替換為從小米平臺申請的AppID pushConfig.xiaomiAppkey = "XiaoMiAppKey"; // 替換為從小米平臺申請的AppKey pushConfig.oppoAppKey = "oppoAppKey"; // 替換為從OPPO平臺申請的AppKey pushConfig.oppoAppSecret = "oppoAppSecret"; // 替換為從OPPO平臺申請的AppSecret // 華為與VIVO的推送通道在AndroidManifest.xml里面添加,此處無需配置 initConfig.setPushConfig(pushConfig); /** * 設置App配網列表的產品范圍,PRODUCT_SCOPE_ALL表示當前項目中已發布和未發布的所有產品, * PRODUCT_SCOPE_PUBLISHED表示只包含已發布產品,正式發布的App請選擇PRODUCT_SCOPE_PUBLISHED */ IoTSmart.setProductScope(IoTSmart.PRODUCT_SCOPE_PUBLISHED); // 初始化,App須繼承自AApplication,否則會報錯 IoTSmart.init(app, initConfig);
三方通道的離線推送的詳細介紹請參見移動應用推送開發指南。
設置國家。
生活物聯網平臺的云端服務為多區域部署,根據您使用的SDK版本以及config.regionType參數的取值,來判斷是否需要在初始化時設置國家。
參數取值
API Level 8及以下
API Level 9及以上
REGION_CHINA_ONLY
不需要
不需要
REGION_ALL
需要
說明此時如果您沒有設置國家,SDK初始化流程會被暫停,且沒法使用SDK的任何API。設置國家的操作請參見歷史文檔。
不需要(此時需在注冊App賬號時設置國家)
(可選)定制登錄注冊頁面。
用戶自簽名代碼參考
對于使用自實現簽名的用戶,需要實現ISecuritySource接口,并實現getAppKey和sign方法給出以下代碼參考 。
//實現 ISecuritySource 接口
public class CustomSecurityImp implements ISecuritySource {
@Override
public String getAppKey() {
//appKey
return "appKey";
}
@Override
public String sign(String input, String signMethod) {
//需要實現 MD5,HmacSha1和HmacSHA256加密方式,加密方法參考com.aliyun.alink.linksdk.securesigner.util.Utils類?
String signStr;
if ("MD5".equals(signMethod)) {
signStr = Utils.getMD5String(input);
return signStr.toLowerCase();
} else if ("HmacSHA256".equals(signMethod)) {
//出于安全性考慮,建議把加密方法寫在c層并多做幾層轉化,避免被獲取到運行時數據
signStr = Utils.hmacSha256("AppSecretKey".getBytes(), input.getBytes());
return signStr.toLowerCase();
} else {
signStr = Utils.hmacSha1("AppSecretKey", input);
return signStr.toLowerCase();
}
}
}
SDK API Reference
在使用生活物聯網平臺提供的SDK時,相關的SDK API注釋請參見SDK API Reference。