您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第8章-Android网络通信
第八章Android网络通信本章主要内容Android网络通信基础AndroidHttp通信WIFI蓝牙网络的重要性网络化信息化的世界短信、电话无线上网移动,自由,随时随地Android支持的通信模式GSMEDGE3GWIFIBLUETOOTHNFC…GSM全球移动通信系统(GlobalSystemforMobileCommunications)当前应用最为广泛的移动电话标准。全球超过200个国家和地区超过10亿人正在使用GSM电话。GSMGSM标准的广泛使用使得在移动电话运营商之间签署“漫游协定”后用户的国际漫游变得很平常。GSM较之它以前的标准最大的不同是他的信令和语音信道都是数字的,因此GSM被看作是第二代(2G)移动电话系统。GSM标准当前由3GPP组织负责制定和维护。EDGE增强型数据速率GSM演进技术EnhancedDataRateforGSMEvolution从GSM到3G的过渡技术能够充分利用现有的GSM资源弹性优势工作在TDMA和GSM网络提高了GPRS信道编码效率及其高速移动数据标准3G第三代移动通信技术(3rd-generation,3G)3G就是指IMT-2000(InternationalMobileTelecommunications-2000),是国际电信联盟(ITU)定义的第三代无线通信的全球标准。IMT-2000规定移动终端的连接速度:以车速移动时——144Kbps室外静止或步行时——384Kbps室内——2Mbps3G目前存在的几种标准WCDMA(WidebandCDMA)——欧洲CDMA2000——美国高通北美公司TD-SCDMA(时分同步CDMA)——中国大陆WiMAX——微波存取全球互通(07年提出)(WorldwideInteroperabilityforMicrowaveAccess)3G——应用宽带上网视频通话手机电视无线搜索3G目前广泛地运用在:手机音乐手机购物手机网游WiFiWirelessFidelity,中文译为“无线兼容认证”实质——一种商业认证技术——短程无线传输现状——带WiFi的便携式设备是潮流WiFi常见的WiFi使用形式——无线路由器覆盖范围——70至120米使用场合——公司、家庭、公共场所优点——方便的建立局域网、低成本、使用简单WiFi——特点无线电波的覆盖范围广传输速度高使用门槛比较低消除布线的麻烦发射功率低,健康安全WiFi相比其他技术有如下一些特点:Bluetooth蓝牙的标志开放式无线通讯标准设备短距离互联解决方案定义:优势:无需驱动程序——独特的配置文件小型化无线电低功率、低成本、安全性、稳固易于使用、即时连接Bluetooth蓝牙协议栈:核心协议层(HCI、LMP、L2CAP、SDP)线缆替换协议层(RFCOMM)电话控制协议层(TCS-BIN)选用协议层(PPP、TCP、IP、UDP、OBEX、IrMC、WAP、WAE)蓝牙规范(profile)——为了保证蓝牙设备的互通性而制定的一系列规范:Bluetooth蓝牙立体声音频传输规范(A2DP)基本图像规范(BIP)基本打印规范(BPP)无线电话规范(CTP)蓝牙耳机规范(HP)文件传输规范(FTP)……NFCNearFieldCommunication(近场通讯)技术起源:NFC由非接触式射频识别(RFID)及互联互通技术整合演变而来,在单一芯片上结合感应式读卡器、感应式卡片和点对点的功能,能在短距离内与兼容设备进行识别和数据交换。NFC轻松、安全、迅速的通信传输范围小——独特的信号衰减技术带宽高、能耗低技术优势:应用场合:门禁、公交手机支付Android提供的网络接口Android平台提供了三种网络接口,它们分别是:java.net.*org.apache.*android.net.*开发人员可以使用这些接口方便的进行Android网络编程。AndroidHttp通信Http简介使用HttpClient接口通信示例使用HttpUrlConnection接口通信示例Http简介Http(HypertextTransferProtocol)即超文本传输协议,它是Web的基础协议,是建立在TCP上的一种应用。Http连接最显著的特点就是客户端发送的每次请求都需要服务器返回响应,并在请求结束后释放连接,这个建立连接到关闭连接的过程称为“一次连接”。由于HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”、“无状态”的连接。在Http1.0时期,要保持客户端程序的在线状态,需要不断地向服务器发起连接请求。通常的做法是即使不需要请求任何数据,客户端也保持每隔一段固定的时间向服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表明知道客户端“在线”。若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。Http简介在Http1.1版本时增加了持久连接支持,即是将关闭连接的主动权交给客户端,只要客户端没有请求关闭连接,就可以持续向服务器发送Http请求。HTTP1.1除了支持持久连接外,还将HTTP1.0的请求方法从原来的三个(GET、POST和HEAD)扩展到了八个(OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE和CONNECT)。同时增加了很多请求和响应字段,如持久连接的字段Connection。这个字段有两个值,Close和Keep-Alive。如果使用Connection:Close,则关闭HTTP1.1的持久连接的功能,若要打开HTTP1.1的持久连接的功能,必须将字段设置为Connection:Keep-Alive,或者不加Connection字段(因为HTTP1.1在默认情况下就是持久连接的)。另外,还提供了身份认证、状态管理和缓存(Cache)等相关的请求头和响应头。Http的特点1.支持客户/服务器模式;2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快;3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记;4.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。使用HttpClient接口通信示例2使用GET方法1初始状态3使用POST方法使用HttpUrlConnection接口通信示例5使用GET方法4初始状态6使用POST方法AndroidWifi开发AndroidSDK提供的相关包:android.net.wifiScanResult用于描述一个已经被检测到的wifi接入点。WifiConfiguration该类代表了一个已经配置好的wifi网络,包括了该网络的一些安全设置。例如接入点密码,接入点通讯所采用的安全标准。WifiConfiguration.AuthAlgorithm公认的IEEE802.11标准认证算法。AndroidWifi相关类介绍WifiConfiguration.GroupCipher公认的组密码。WifiConfiguration.KeyMgmt公认的密钥管理方案。WifiConfiguration.PairwiseCipher公认的用于WPA的成对密码标准。WifiConfiguration.Protocol公认的安全协议WifiConfiguration.Status网络所可能存在的状态。AndroidWifi相关类介绍WifiInfo描述了各个wifi连接的状态,该连接是否处于活动状态或者是否处于识别过程中。WifiManager这个类比较重要。它提供了用于管理wifi连接的各种主要API。详见表后说明。WifiManager.MulticastLock允许应用程序接收wifi的多播数据包。WifiManager.WifiLock允许应用程序永久地保持wifi连接(防止系统自动回收)。AndroidWifi开发Android操作WiFi的重要类——WifiManager这个类提供了最主要的用于管理wifi连接的API。通过调用Context.getSystemService(Context.WIFI_SERVICE)方法来得到系统提供的WifiManager,代码如下:WifiManagermWifiManager=(WifiManager)context.getSystemService(Context.WIFI_SERVICE);AndroidWifi开发WifiManager主要用于处理下面一些事务:已经配置好的网络连接列表。这个列表可以被用户查看或者更新,而且可以通过它来修改个别接入点的属性;如果当前有连接存在的话,可以得到当前正处于活动状态的wifi连接的控制权,可以通过它建立或者断开连接,并且可以查询该网络连接的动态信息;通过对已经扫描到的接入点的足够信息来进行判断,得出一个最好的接入点进行连接。定义了很多用于系统广播通知的常量,它们分别代表了WiFi状态的改变。AndroidWifi开发补充:Android网络连接管理类——ConnectivityManager该类用于管理抽象意义上的“网络连接”监控网络连接(包括WiFi,GPRS,UMTS等等);当网络连接发生改变时,向系统广播这一改变;当失去了当前的网络连接时,尝试切换到另外一个连接;提供了允许其他应用程序调用的API让应用程序可以方便地查询当前的网络状态。它的主要作用是:AndroidWifi权限获取要在应用程序中对Android系统的WiFi设备进行相关操作,需要在项目中的AndroidManifest.xml中选择性地添加如下几句用于声明权限的语句:uses-permissionandroid:name=android.permission.ACCESS_WIFI_STATE/uses-permissionuses-permissionandroid:name=android.permission.ACCESS_CHECKIN_PROPERTIES/uses-permissionuses-permissionandroid:name=android.permission.WAKE_LOCK/uses-permissionuses-permissionandroid:name=android.permission.CHANGE_WIFI_STATE/uses-permissionAndroidWifi开发——代码示例//取得WifiManager对象mWifiManager=(WifiManager)context.getSystemService(Context.WIFI_SERVICE);//取得WifiInfo对象mWifiInfo=mWifiManager.getConnectionInfo();//打开WIFIpublicvoidopenWifi(){if(!mWifiManager.isWifiEnabled()){mWifiManager.setWifiEnabled(true);}}AndroidWifi开发——代码示例//关闭WIFIpublicvoidcloseWifi(){if(!mWifiManager.isWifiEnabled()){mWifiManager.setWifiEnabled(false);}}//得到WifiLock,以便应用程序保
本文标题:第8章-Android网络通信
链接地址:https://www.777doc.com/doc-4765420 .html