一、物联网移动应用开发的定义
物联网的概念是在1999年提出的。物联网的英文名称叫“The Internet of things”,顾名思义,简而言之,物联网就是“物物相连的互联网”。这有两层意思:第一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;第二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通讯。严格而言,物联网的定义是:通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网连接起来,进行信息交换和通讯,以实现智能化识别、定位、跟踪、监控和管理的一种网络。
物联网中非常重要的技术是RFID电子标签技术。以简单RFID系统为基础,结合已有的网络技术、数据库技术、中间件技术等,构筑一个由大量联网的阅读器和无数移动的标签组成的,比Internet更为庞大的物联网成为RFID技术发展的趋势。物联网用途广泛,遍及智能交通、环境保护、政府工作、公共安全、平安家居、智能消防、工业监测、老人护理、个人健康等多个领域。预计物联网是继计算机、互联网与移动通信网之后的又一次信息产业浪潮。有专家预测10年内物联网就可能大规模普及,这一技术将会发展成为一个上万亿元规模的高科技市场。
国际电信联盟2005年一份报告曾描绘“物联网”时代的图景:当司机出现操作失误时汽车会自动报警;公文包会提醒主人忘带了什么东西;衣服会“告诉”洗衣机对颜色和水温的要求等等。
物联网把新一代IT技术充分运用在各行各业之中,具体地说,就是把感应器嵌入和装备到电网、铁路、桥梁、隧道、公路、建筑、供水系统、大坝、油气管道等各种物体中,然后将“物联网”与现有的互联网整合起来,实现人类社会与物理系统的整合,在这个整合的网络当中,存在能力超级强大的中心计算机群,能够对整合网络内的人员、机器、设备和基础设施实施实时的管理和控制,在此基础上,人类可以以更加精细和动态的方式管理生产和生活,达到“智慧”状态,提高资源利用率和生产力水平,改善人与自然间的关系。
物联网是利用无所不在的网络技术建立起来的,是继计算机、互联网与移动通信网之后的又一次信息产业浪潮,是一个全新的技术领域。早在1999年,在美国召开的移动计算和网络国际会议就提出,“传感网是下一个世纪人类面临的又一个发展机遇”;2003年,美国《技术评论》提出传感网络技术将是未来改变人们生活的十大技术之首;2005年,在突尼斯举行的信息社会世界峰会(WSIS)上,国际电信联盟(ITU)发布了《ITU互联网报告2005:物联网》,正式提出了“物联网”的概念。
毫无疑问,如果“物联网”时代来临,人们的日常生活将发生翻天覆地的变化。然而,不谈什么隐私权和辐射问题,单把所有物品都植入识别芯片这一点现在看来还不太现实。人们正走向“物联网”时代,但这个过程可能需要很长很长的时间。
二、中国移动物联网是什么啊?
1. 物联网是通过在各种物体上安神闹装SIM卡、传感器、二维码等,并通过无线网络接口实现与网络的连接,从而实现人与物、物与物之间的交流和对话。这种连接物体的网络被称为物联网。物联网具有规模化、流动性、安全性等特点。
2. 中国移动物联网业务,即基于中国移动游培罩通信网络,向客户提供个性化的、智能化的、信息化的物中中联网应用服务。
三、Android开发在物联网系统中怎么去用
移动便携设备,手机、平板是Android系统,在最底层传感器是检测模块。收集到的数据通过zigbee 发送给协调器,协调器给网关,最后到服务器,然后Android将服务器的数据外部调用(归根结底,还是与服务器的通信)。这时候用到的就是Web Service,而手机端就是客户端。完成这个调用,首先要在服务器端部署Web Service,之后再在客户端书写代码,访问接口,调用数据。把这个思路理清,接下来再去做,而我在这里首先将客户端的代码书写,服务器端在下一篇中给出详细的说明。
一、准备工作
1.SDK中并没有Web Service的类库,这就需要第三方类库调用,就是koasp2,简单的说,你得先导入一个jar包。完成之后如下图。
2.部署服务器端首先需要Tomcat,这是下一篇中才会用到的,我在这儿只是先把它准备好,客户端的简单调用用不到它。这是tomcat的安装教程,过程很详细;之后,这是将tomcat导入到ADT环境下的eclipse的教程,它的下载过程还是比较虐心的。
二、接下来就是代码的编写过程(注:这是客户端的)
1.首先还是Manifest,给它一个网络访问权限
2.书写xml布局文件(还是因为自己做得界面太丑,不粘了)
3.书写Activity。新建一个类(这只是代码示例,需要写的就是这些,可以传多个参数),
public class CommonWebService {
// 所调用的WebService的终端
public static String endpoint = ;
// 所调用的WebService的地址
public static String ip = 192.168.1.21;
// 所调用的WebService的命名空间
public static String namespace = ;
// 所调用的WebService中的方法
public static final String Infusion_METHOD = MygetInfusion;
public void show_Infusion() {
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
// 定义命名空间
String nameSpace = ;
// 定义调用方法名称
String methodName = query_Infusion;
// endPoint以及soapAction
String endPoint = ;
String soapAction = openlamp;
// 指定WebService的命名空间和调用方法
SoapObject soapObject = new SoapObject(nameSpace, methodName);
// 生成调用WebService方法调用的soap信息,并且指定Soap版本
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.bodyOut = soapObject;
//并不是dotnet开发的Web Service
envelope.dotNet = false;
// 输出
envelope.setOutputSoapObject(soapObject);
// 定义一个HttpTransportSE对象
HttpTransportSE transport = new HttpTransportSE(endPoint);
try {
transport.call(soapAction, envelope);
// transport.call(null, envelope);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 获取返回的数据
SoapObject object = (SoapObject) envelope.bodyIn;
// 获取返回的结果
String result = null;
result = object.getProperty(0).toString();
Message message = handler_shuye.obtainMessage();
message.obj = result;
handler_shuye.sendMessage(message);
}
}).start();
}
public static String reslut_shuye;
private static Handler handler_shuye = new Handler() {
@Override
public void handleMessage(android.os.Message msg) {
// 将WebService得到的结果返回给TextView
reslut_shuye = msg.obj.toString();
};
};
}
4.在上述的代码中,需要注意的几点,你调用Web Service,你得先弄明白四个值:命名空间、调用的方法名称、EndPoint、SOAP Action。因为服务器端是自己部署,wsdl就要自己写,自己会部署服务器端了,这四个值也就一幕了然了。