欢迎来到天天文库
浏览记录
ID:22452952
大小:250.71 KB
页数:20页
时间:2018-10-20
《第9章 android位置服务》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第九章Android位置服务与地图应用本章目标:了解位置服务掌握Google地图应用了解XML的解析9.1位置服务位置服务(LocationBasedServices,LBS),又称定位服务或基于位置的服务,融合了GPS定位、移动通信、导航等多种技术,提供了与空间位置相关的综合应用服务。位置服务首先在日本得到商业化的应用。2001年7月,DoCoMo发布了第一款具有三角定位功能的手持设备,2001年12月,KDDI发布第一款具有GPS功能的手机。近些年来,基于位置的服务发展更加迅速,涉及到商务、医疗、工作和生等各个方面,为用户提供
2、定位、追踪和敏感区域警告等一系列服务。Android平台支持提供服务的API,在开发过程中主要用到LocationManager和LocationProviders对象。LocationManager可以用来获取当前的位置,追踪设备的移动路线,或设定敏感区域,在进入或者离开敏感区域时设备会发出特定警报。LocationProviders则是能够提供定位功能的组件集合,集合中的每种组件以不同的技术提供设备的当前位置,区别在于定位的精度、速度和成本等方面。9.1位置服务为了使开发的程序能够提供位置服务,首先需要获得LocatioMan
3、ager对象。获取LocatioManager可以通过调用android.app.Activity.getSystemService()函数实现,代码如下:StringserviceString=Context.LOCATION_SERVICE;LocationManagerLocationManager=(LocationManager)getSystemService(serviceString);代码中的Context.LOCATION_SERVICE指明获取的服务是位置服务,getSystemService()函数,可以根
4、据服务名称获取Android提供的系统级服务。表9-1Android支持的系统级服务表Context类的静态常量值返回对象说明LOCATION_SERVICElocationLocationManager控制位置等设备的更新WINDOW_SERVICEwindowWindowManager最顶层的窗口管理器LAYOUT_INFLATER_SERVICElayout_inflaterLayoutInflater将XML资源实例化为ViewPOWER_SERVICEpowerPowerManager电源管理ALARM_SERVICEa
5、larmAlarmManager在指定时间接受IntentNOTIFICATION_SERVICEnotificationNotificationManager后台事件通知KEYGUARD_SERVICEkeyguardKeyguardManager锁定或解锁键盘SEARCH_SERVICEsearchSearchManager访问系统的搜索服务VIBRATOR_SERVICEvibratorVibrator访问支持振动的硬件CONNECTIVITY_SERVICEconnectionConnectivityManager网络连接
6、管理WIFI_SERVICEwifiWifiManagerWi-Fi连接管理INPUT_METHOD_SERVICEinput_methodInputMethodManager输入法管理9.1位置服务在获得LocationManager后,还需要指定LocationManager的定位方法,然后才能够调用LocationManager.getLastKnowLocation()方法获取当前位置。目前LocationManager支持的定位方法有两种,分别是使用GPS定位和使用网络定位。GPS定位可以提供更加精确的位置信息,但定位速
7、度和质量受到卫星数量和环境情况的影响;网络定位提供的位置信息精度较差,但速度较GPS定位快。表9-2LocationManager支持定位方法表LocationManager类的静态常量值说明GPS_PROVIDERgps使用GPS定位,利用卫星提供精确的位置信息,需要android.permissions.ACCESS_FINE_LOCATION用户权限NETWORK_PROVIDERnetwork使用网络定位,利用基站或Wi-Fi提供近似的位置信息,需要具有如下权限:android.permission.ACCESS_COAR
8、SE_LOCATION或android.permission.ACCESS_FINE_LOCATION.9.1位置服务在指定LocationManager的定位方法后,则可以调用getLastKnowLocation()方法获取当前的位置信息。以使
此文档下载收益归作者所有