当您开发自有App,下载并集成SDK后,需要对所有SDK进行初始化。

概述

从API Level 8开始,SDK的初始化不再需要挨个初始化SDK,而可以使用统一的初始化接口,一次性完成所有的所需SDK的初始化。如果您使用的是API Level 7或以下版本,建议您升级至最新版本,详细请参见SDK升级

根据开发者下载SDK时勾选的SDK配置项,统一接口对如下SDK逐一初始化。

  • API通道SDK (必选初始化)
  • 账号及用户SDK (必选初始化)
  • 身份认证SDK(必选初始化)
  • 长连接通道SDK
  • 设备模型SDK
  • 移动应用推送SDK
  • BoneMobile容器SDK

统一初始化支持默认初始化和带参数初始化两种方式,区别如下。

  • 如果您的设备仅在中国内地使用,建议使用默认初始化。默认初始化不可以自定义,固定为直连中国内地接入点的正式版环境。
  • 如果您的设备可能销往除中国内地以外地区,建议使用带参数初始化。用带参数初始化可以自定义,包括选择接入类型(中国内地或全球)、是否打开日志,以及定制三方通道离线推送参数等。

SDK初始化

  1. 集成安全图片。详细操作请参见集成安全图片
    说明 安全图片文件名根据站点、版本的不同而存在差异。请勿修改安全图片名称,下载后直接拷贝到App工程目录下。
  2. 下载并集成SDK。详细操作请参见下载并集成SDK
  3. 初始化SDK。
    • 默认初始化
      IoTSmart.init(application); //初始化,App须继承自AApplication,否则会报错
    • 带参数初始化
      // 初始化参数配置
      IoTSmart.InitConfig initConfig = new IoTSmart.InitConfig()
                      // REGION_ALL表示连接全球多个接入点;REGION_CHINA_ONLY表示直连中国内地接入点
                      .setProductEnv(IoTSmart.PRODUCT_ENV_PROD)
      
                      // 是否打开日志
                      .setDebug(true);
      
              // 定制三方通道离线推送,目前支持华为、小米、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);                   

      三方通道的离线推送的详细介绍请参见移动应用推送开发指南

  4. 设置国家。
    阿里云IoT的云端服务为多区域部署,如果您将config.regionType设置成REGION_ALL后,还需要设置相应的国家,请参见国际站开发实践专题完成。
    说明 如果您未设置国家,SDK初始化流程会挂起,直至国家设置完毕。在国家设置完成前请勿使用SDK的任一API,否则会造成报错。
  5. (可选)定制登录注册页面。
    • 使用内置账号:请参照demo App里面的SDKInitHelper.postInit,来定制自己的登录页面。请参见Demo App
    • 使用自有账号:您需要自行开发登录UI,登录成功后再授权认证。请参见账号及用户SDK

SDK API Reference

在使用生活物联网平台提供的SDK时,相关的SDK API注释请参见SDK API Reference