本文介绍如何快速地使用Android Link SDK,通过MQTT协议,实现设备与物联网平台之间连接和通信的整体操作

前提条件

已开通物联网平台服务。

说明 开通阿里云物联网平台不收费。开通后,您可以根据免费额度试用服务,试用流程请参见物联网平台试用中心

背景信息

本文以夜灯开关为例,在Windows环境中,通过配置Android的Demo文件,模拟设备使用MQTT协议接入物联网平台。设备通过自定义Topic,将数据上报至物联网平台

关于物联网平台的更多信息,请参见什么是物联网平台

创建产品和设备

  1. 登录物联网平台控制台,单击公共实例卡片
  2. 在左侧导航栏,选择设备管理 > 产品,单击创建产品
  3. 新建产品页面,输入产品名称:夜灯开关,选择自定义品类其他参数使用默认值,单击确认
    创建产品
  4. 在完成创建产品的页面,单击添加设备下的前往添加
  5. 设备页面,单击添加设备
  6. 添加设备对话框中,输入设备名称(例如:LightSwitch),单击确认
    添加设备
  7. 添加完成对话框中,单击一键复制设备证书。将设备证书信息保存至本地备用。关于设备证书的更多信息,请参见设备证书

准备开发环境

本示例开发工具为Android Studio 4.1.1,虚拟设备系统为Android 10.0。关于环境的更多说明,请参见环境说明

  1. 安装Android Studio。
    更多信息,请参见Android Studio
  2. 创建虚拟设备。
    更多信息,请参见创建和管理虚拟设备

配置设备端SDK

  1. 下载Demo文件至开发环境并解压。
    说明 下载本Demo将默认您同意本软件许可协议

    关于Android Link SDK的更多信息,请参见Android Llink SDK概述

  2. 打开Android Studio,选择File > Open...,找到步骤1中的Demo文件路径,单击OK
  3. 配置项目中以下文件的参数。
    需配置的文件 参数 示例 说明
    ./app/src/main/res/raw/deviceinfo productKey a18wP****** 设备认证信息。完成添加设备后,您保存至本地的设备证书。

    您也可以在物联网平台设备的详情页查看设备的认证信息。

    deviceName LightSwitch
    deviceSecret uwMTmVAMnGGHaAkqmeDY6cHxxB******
    app/src/main/java/com/aliyun/alink/devicesdk/manager/InitManager.java channelHost productKey + ".itls.cn-shanghai.aliyuncs.com:1883" 设备的接入域名。本示例使用上海地域的公共实例。
    • 若使用公共实例,您可将cn-shanghai更改为您服务所在的地域ID。请在物联网平台控制台左上角,查看您服务所在的地域。地域ID的取值,请参见地域和可用区
    • 若使用企业版实例,该参数值的格式为"MQTT设备接入信息:1883",(例如"iot-06******.mqtt.iothub.aliyuncs.com:1883")。

      您可在实例详情页面,单击查看开发配置,查看MQTT设备接入的信息。具体操作,请参见查看实例终端节点

    app/src/main/java/com/aliyun/alink/devicesdk/demo/MqttActivity.java testSubscribeTopicAndQos "/" + DemoApplication.productKey + "/" + DemoApplication.deviceName + "/user/get:0" 拥有订阅权限的Topic,设备通过该Topic,可接收物联网平台的消息。

    您可以在物联网平台的产品详情页Topic类列表下的自定义Topic页签下,查看您的自定义Topic。更多信息,请参见什么是Topic

    示例值中的user/get为Topic的后缀,将其修改为指定值后,可订阅对应的Topic。

    本示例订阅的Topic为/a18wP******/LightSwitch/user/get
    • a18wP******为设备的ProductKey
    • LightSwitch为设备的DeviceName
    testPublishTopic "/" + DemoApplication.productKey + "/" + DemoApplication.deviceName + "/user/update:0" 拥有发布权限的Topic,设备通过该Topic向物联网平台发送消息。

    您可以在物联网平台的产品详情页Topic类列表下的自定义Topic页签下,查看您的自定义Topic。更多信息,请参见什么是Topic

    示例值中的user/update为Topic的后缀,将其修改为指定值后,可向对应的Topic发送消息。

    本示例要发送消息的Topic为/a18wP******/LightSwitch/user/update
    • a18wP******为设备的ProductKey
    • LightSwitch为设备的DeviceName
    payloadObj {\"id\":\"1\",\"version\":\"1.0\",\"params\":{\"LightSwitch\":0}} 上报至物联网平台的消息内容。

    本示例使用自定义Topic,您可自定义消息的数据格式。

  4. 单击Make Project按钮,完成项目的编译。

运行结果

  • 项目编译完成后,您可单击运行按钮,运行项目。

    如下图所示,Demo程序在虚拟设备中成功运行,设备成功接入物联网平台。

    Android设备接入物联网平台
    1. 单击Mqtt示例
    2. Mqtt示例页面,将要订阅的Topic修改为步骤3设置的Topic后,单击订阅Android设备订阅Topic
      Topic订阅成功后,您可以返回物联网平台,在设备详情页面的Topic列表页签,单击订阅的Topic操作栏的发布消息,然后在发布消息对话框的消息输入栏中,输入一条消息(例如:This is a test message from Alibaba Iot Platform.),模拟从物联网平台向设备发送消息。发送消息
    3. Mqtt示例页面,将要发布消息的Topic修改为步骤3设置的Topic后,单击发布Android消息发送成功
  • 您可以在物联网平台控制台查看设备的状态和运行日志。

    • 左侧导航栏,选择设备管理 > 设备,找到设备,查看设备状态。设备状态显示为在线,则表示设备与物联网平台成功连接。查看设备状态
    • 在左侧导航栏,选择监控运维 > 日志服务,选择夜灯开关产品后,查看设备上线、订阅Topic和上报消息的日志。日志消息

如果在调试过程中出现错误,请参见设备端接收的错误码,根据提示解决问题。若未能解决问题,您可以提交工单

后续步骤

设备接入物联网平台后,您可以管理设备并对其进行监控运维。关于物联网平台的更多功能,请参见物联网平台产品功能

您还可以使用Android Link SDK配置相关高级功能。更多信息,请参见Android Link SDK概述