为自有App初始化Android SDK

[an error occurred while processing the directive]

概述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);

// 定制三方通道离线推送,目前支持华为、小米、FCM、OPPO、VIVO

IoTSmart.PushConfig pushConfig = new IoTSmart.PushConfig();

pushConfig.fcmApplicationId = "fcmid"; // 替换为从FCM平台申请的id

pushConfig.fcmSendId = "fcmsendid"; // 替换为从FCM平台申请的sendid

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账号时设置国家)

(可选)定制登录注册页面。

使用内置账号:请参照demo App里面的SDKInitHelper.postInit,来定制自己的登录页面。请参见账号及用户SDK。

使用自有账号:您需要自行开发登录UI,登录成功后再授权认证。请参见账号及用户SDK。

用户自签名代码参考对于使用自实现签名的用户,需要实现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。

[an error occurred while processing the directive]

Copyright © 2088 星游活动站 - 新服开区专属福利 All Rights Reserved.
友情链接