打印

【我是个快乐的搬运工连载系列③】之分析设备详情界面...

[复制链接]
804|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 caijie001 于 2018-3-1 15:27 编辑

注:本帖为转载系列,征得“半颗心脏”博主(我老乡)的同意。哎呀,老家人才还是蛮多的

原贴地址:第一篇:认识开源框架结构,导入PK、APP的id和secret。
                 第二篇:详细分析在设备列表的代码块,如何修改自定义的设备图片。
                 第三篇 : 分析设备详情界面的中如何发送各种指令到云端:boolean、int、String类型。
1、必须涉及到的类 ConcurrentHashMap.class 。
  • 这个类先是继承一个抽象类 AbstractMap,其 AbstractMap 也是实现接口 Map,归咎本质,说明这是一个集合。

  • 以下是该类的对外的重要方法。



2、如何发送指令指定到云端?。
  • 我们必须在 GizWifiDevice类中知道存在这个对外的方法,如下:
    • 第一个参数就不必说了,是我们上面提到的。
    • 第二个参数是一个 int类型的,sn设置为小循环、大循环,一般我们写入0即可。



  • 第一步:首先创建一个 ConcurrentHashMap 对象,指定的泛型为 String 和 Object ,毕竟我们是通过数据点标识和对应的值控制云端设备,所以第一个是数据点String类型,至于第二个为什么是超类?因为我们对应的数值可能是 String 、int、boolean类型或其他等,但是:这些类型都是继承于超类的,所以泛型指定为 object 。
       ConcurrentHashMap<String, Object> map= new ConcurrentHashMap<>();
  • 1
  • 第二步,写入将要发送到云端的数据,比如我要发送一个 数据点名字是 light_off , 数值为 false,我们可以这样做:
       map.put("light_off ", false);
  • 1

如果你是发送 数字类型 int 的话,这样写: map.put ( “light_off ” , 150 );

如果你是发送 布尔类型 boolean 的话,这样写: map.put ( “light_off ” , true);

如果你是发送 枚举类型 的话,这样写: map.put ( “light_off ” , “开灯”);

  • 第三步,写入将要发送到云端的数据之后,我们这样做,把已经绑定的GizWifiDevice对象设备,调用其 write()方法即可 , 之后手机会自动发送指令到云端,代码如下:
     device.write(map,0);













相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:21ic公开课专区:http://open.21ic.com/ 21ic资料下载中心:http://dl.21ic.com/ 21ic项目外包中心:http://project.21ic.com/ 杰杰欢迎大家有空常来赛事专区逛逛

131

主题

3790

帖子

63

粉丝