Demo App
更新时间:2019-09-06 17:30:18
1、概述
DemoApp 主要展示生活领域的完整业务,包括设备配网,设备绑定,用户设备的获取,用户设备状态的获取和控制;另外,还是展示各个 SDK 模块是如何使用的。
2、下载
3、使用方式
3.1、Android Studio 导入
step 1: 打开 Android Studio,创建一个新工程,请注意,需要修改 Project 目录的 build.gradle 中打包插件版本为3.0.0,修改如下:com.android.tools.build:gradle:3.0.0
step 2: 把 Demo APP 源码作为Module导入,导入方式:File --> New --> Import Module
step 3: 创建一个移动应用, 请参见Android 移动应用的创建和版本配置 - 创建 appKey
step 4: 替换安全图片,请参见集成安全图片
step 5: 各功能模块的服务已默认开通,可参考各 SDK 使用到的官方服务列表对应关系:
SDK 名称 | 服务名称 |
---|---|
API 通道 | 官方基础服务 |
长连接通道 | 应用与插件服务 长连接推送服务 |
用户及账号 | 用户服务 |
移动应用推送 | 移动应用推送服务 |
BoneMobile 容器 | 应用与插件服务 |
用户认证SDK | 用户服务 |
3.2、命令构建APK
- 在 Demo APP 目录下,执行命令 ./gradlew clean build -u
4、DemoApp 源码结构说明
代码结构分为sdk初始化模块(aep.sdk)和业务逻辑模块(ilop),图中显示为主界面实现MainActivity。
sdk初始化模块包括:APIClient,OA,RN,Push,长链接,设备模型,配网等sdk;
APIGatewaySDKDelegate: APISDK初始化,用于请求 IoT 接口业务使用;
OpenAccountSDKDelegate:OA初始化,提供账号登录,登出;
RNContainerComponentDelegate:RN容器初始化,用于展示容器的能力和接口使用;
PushManager:Push初始化,展示通知信息的提交;
DownstreamConnectorSDKDelegate:演示订阅/发送消息等功能;
ThingModuleSDKDelegate:配网SDK;
长链接,rn容器,配网sdk,设备模型sdk初始化配置在sdk_config.json文件中,启动aplication时会自动初始化。
4.1、关于调试页面的说明
DebugTabFragment调试界面,调用com.aliyun.iot.ilop.demo.view.DebugLayout布局,提供一下功能;BoneMobile插件调试:1.开发环境、生产环境切换,2.本地调试
API通道:API网管调试
长链接通道:长链接通道调试
账号和用户:登录、退出
移动推送SDK:可以查看AppKey,ClientID,DeviceID等信息
5、使用 Demo App 体验完整业务逻辑
默认 Demo App 配置为官方项目和默认支持的几类设备。
5.1、账号注册/登录
App 启动后会显示登录页面:
可以看到登录页面可以注册账号;点击免费注册,弹出要注册方式,输入要注册的手机号码或邮箱,然后点击下方发送短信校验码。
在短信校验码区域输入收到的校验码,进入下一步;然后设置密码完成登录;
注意:
"忘记密码"功能选择区号
在OALoginActivity的OnCreate方法里面添加下面两行代码可以显示区号选择
OpenAccountUIConfigs.AccountPasswordLoginFlow.supportForeignMobileNumbers=true; OpenAccountUIConfigs.MobileResetPasswordLoginFlow.supportForeignMobileNumbers=true;
隐藏右侧的下拉框历史记录
this.findViewById("input_history").setVisibility(View.GONE); this.loginIdEdit.getEditText().addTextChangedListener(new TextWatcher() { public void afterTextChanged(Editable s) { OALoginActivity.this.loginIdEdit.showInputHistory(OALoginActivity.this.loginIdEdit,false); } public void beforeTextChanged(CharSequence s, int start, int count, int after) { } public void onTextChanged(CharSequence s, int start, int before, int count) { } });
5.2、设备控制
进入主页面,如下图:
可以看到,默认已经存在4个虚拟设备,分别对应插座-Demo,风扇-Demo,灯-Demo和加湿器-Demo;可以点击任意一个设备,进入相应的设备面板页面;
5.3、添加设备
添加设备,可以点击首页右上角新增按钮;
然后选择添加设备,进入添加设备页面;
添加设备支持两种形式,一种是通过产品列表的形式进行配置,如上图支持添加的设备;还有一种是通过本地网络发现的设备,或者有支持零配配网方案的设备,如上图本地发现设备,如果能发现到本地设备,则会显示出来;
通过产品列表添加需要使用官方项目对应的接入产品,这一步目前并没有真实设备可以使用;如果想体验这个流程,建议通过自主研发App的形式来完成。
6、使用 Demo App 支持自主研发 App
6.1、项目创建
进入飞燕平台,创建自己的项目;
新建项目:
输入项目名称Demo(可以按自己的需要创建项目名称),点击确定,之后提示创建成功后进入下个页面;
6.2、产品接入
为了模拟正常的全链路流程,我们可以先从产品接入开始;
首先,新建产品;
输入要创建的产品名称,并选择节点类型和通讯方式,还有数据格式;具体值的类型可以根据实际接入的设备类型来选择,此处仅为演示使用;点击确认,进入下一步。
创建产品成功之后,会进入产品研发流程;可以根据具体的产品进行功能定义、设备调试、人机交互等信息,调试完成之后可以进行批量投产。
7、自主研发APP
7.1、应用创建
点击自主研发APP,然后弹出新建APP应用窗口,输入APP名称和应用包名,点击确认:
确认后进入自由APP配置界面,可以选择要关联的产品,设置内置账号,配置APP界面和下载SDK信息。
关联产品配置:可以打开或是关闭产品关联信息
配置用户账号信息:如果使用内置账号,可以根据文档配置,如果使用自有账号体系先吃药配置访问的url等信息。
配置APP界面信息:选择要配置的模块,点击生成代码,点击复制,才可以生效,不可直接复制。
SDK下载:根据产品功能,选择要下载sdk的版本和类型。Android 下载生成dependency.gradle文件。
消息推送设置:在sdk下载时,可以设置推送配置,安卓可以设置小米,GCM/FCM,华为推送。
7.2、开发信息
下载安全图片:可以将demoAPP中的包名和签名替换,然后使用demoapp重新构建打realse包,将打好的上传,上传成功之后,就可以下载安全图片。(yw_1222_114d.jpg)
将下载完成的安全图片放在drawable文件夹下,相关sdk初始化的时候会使用到安全图片。
7.3、编译工程并运行
安全图片替换完成后,就可以编译并运行 Demo App 工程;
7.4、使用虚拟设备体验设备控制
在没有真实设备可以走通链路的情况下,也可以使用虚拟设备进行体验和开发,比如上面首页提到的虚拟设备。
自主研发App需要在源码LinkViewController中更新产品对应的productKey,替换为自己项目的产品productKey; 每个产品可以申请1个虚拟设备,如下图:
上图选中的部分产品productKey更新为与项目对应的产品productKey,可以在项目页面中查看;
更新成功之后,使用新的账号注册并登录,进入首页后会检查当前用户是否存在虚拟设备,没有则会注册并绑定虚拟设备,然后可以体验;生成虚拟设备后,如果无法进入面板,参考上面提到的集成界面部分进行配置。
8、注意
登录界面:
demoapp 配置:
请配置 JDK 为1.8版本
3.0.0版本的打包插件,需要 Android Studio 3.0以上的版本支持
3.0.0版本的打包插件,目前需要访问 Google 的仓库,请注意网络环境。