首页 » Android程序设计:第2版 » Android程序设计:第2版全文在线阅读

《Android程序设计:第2版》基于地理位置的服务

关灯直达底部

手机会单独使用某种方式或组合多种方式来确定地理位置。

Cell ID

不管你是否真正在通话,只要开了机,你的手机就在不断向附近的信号发射塔发射信号。这样当有人给你电话时,你的手机才能够接收到呼叫,因此每隔几秒钟它就会ping一下上一次连接的信号塔,告诉该信号塔手机还在其范围内,并记录一系列网络参数,如当前时间、当前信号强度(上行和下行,uplink and downlink)等。

当你移动时,你的手机可能会发起请求,请求被移交给另一个信号塔,这些操作都是后台执行的,不需要你干预。全世界每个信号塔都有唯一的标识符,称为Cell ID,每个信号塔能够辨别其经度和维度,因此只要知道手机当前所属Cell ID的地理位置,就能够很容易知道你的大体位置。信号网络覆盖的范围的大小取决于所在区域期望的流量,在美国,其范围从0.5英里(城市)到5英里甚至更多(取决于空间的开阔程度)。

三角区(Triangulation)

大部分时候,手机是在多个信号塔的范围内。在2G以及更新的移动通信技术中,信号塔能够识别手机信号的来源方向。如果有两三个信号塔都识别出了手机的位置,那么将它们的信息综合在一起就可以基于三角测量原理定位出手机的地理位置。通过某些操作符,手机可以向网络发送查询请求,查询自己的地理位置。这听起来有些落后,但是其定位却是非常准确的,并且不需要在手机上安装任何额外的硬件。

全球定位系统

基于卫星的全球定位系统(GPS)当今已经无处不在,它被广泛集成在汽车导航设备、手持导航仪及手机中。好消息是使用GPS,移动手机可以非常准确地定位其位置,包括其高度,这对于某些应用是很重要的。尽管GPS也有一些缺点,但是它依然越来越普及。GPS的几个缺点是:

成本增加

GPS无线电和处理器都相当便宜,但是,对于手机成本,增加10美元也是相当可观的。

减少电池续航时间

在减少GPS无线电和处理器消耗的电源方面已经有了很大的进步,但是它们依然相当耗电。大多数包含GPS的手机都有一个功能,支持用户打开或关闭GPS。如果你的应用需要GPS的精确度,那么最好要记得检查GPS设备是否已经开启,如果没有开启,就需要通知用户。

不可靠性

没有什么“总是能够正常工作的”,而GPS更是如此,它依赖于移动设备能够看到的当前的卫星。如果你是在高层建筑的地下室,被钢筋混泥土包围着,则你很可能无法使用GPS。

期望所有的Android手机都能够包括一个或多个地理位置查找方法是合情合理的。大多数最新的Android手机,都支持这些定位方式。因此,接下来我们将一起继续探讨如何使用这些定位技术。