9.1位置服务 ·位置服务 口Android平台支持提供位置服务的API,在开发过程中主 要用到LocationManager和LocationProviders对象 口LocationManager可以用来获取当前的位置,追踪设备的 移动路线,或设定敏感区域,在进入或离开敏感区域时 设备会发出特定警报 口LocationProviders则是提供定位功能的组件集合,集合 中的每种组件以不同的技术提供设备的当前位置,区别 在于定位的精度、速度和成本等方面
9.1 位置服务 n 位置服务 q Android平台支持提供位置服务的API,在开发过程中主 要用到LocationManager和LocationProviders对象 q LocationManager可以用来获取当前的位置,追踪设备的 移动路线,或设定敏感区域,在进入或离开敏感区域时 设备会发出特定警报 q LocationProviders则是提供定位功能的组件集合,集合 中的每种组件以不同的技术提供设备的当前位置,区别 在于定位的精度、㏿度和成本等方面
9.1位置服务 ·位置服务 口为了使开发的程序能够提供位置服务,首先的问题是如 何获取LocationManager 口获取LocationManager可以通过调用 android.app.Activity.getSystemService(O函数获取,代码 如下 1 String serviceString=Context.LOCATION_SERVICE; 2 LocationManager LocationManager=(LocationManager)getSystemService(serviceString); ■代码第1行的Context..LOCATION SERVICE指明获取的是 位置服务 代码第2行的getSystemService()函数,可以根据服务名称 获取Android提供的系统级服务
9.1 位置服务 n 位置服务 q 为了使开发的程序能够提供位置服务,首先的问题是如 何获取LocationManager q 获取LocationManager可以通过调用 android.app.Activity.getSystemService()函数获取,代码 如下 1 String serviceString = Context.LOCATION_SERVICE; 2 LocationManager LocationManager = (LocationManager)getSystemService(serviceString); n 代码第1行的Context.LOCATION_SERVICE指明获取的是 位置服务 n 代码第2行的getSystemService()函数,可以根据服务名称 获取Android提供的系统级服务
9.1位置服务 ·位置服务 口Android支持的系统级服务表 Context类的静态常量 值 返回对象 说明 LOCATION SERVICE location LocationManager 控制位置等设备的更新 WINDOW SERVICE window WindowManager 最顶层的窗口管理器 LAYOUT INFLATER SERV layout inflater LayoutInflater 将ML资源实例化为 ICE View NOTIFICATION SERVICE notification NotificationManager 后台事件通知 POWER SERVICE power PowerManager 电源管理 ALARM SERVICE alarm AlarmManager 在指定时间接受Intent KEYGUARD SERVICE keyguard KeyguardManager 锁定或解锁键盘 SEARCH SERVICE search SearchManager 访问系统的搜索服务 VIBRATOR SERVICE vibrator Vibrator 访问支持振动的硬件 CONNECTIVITY SERVICE connection ConnectivityManager 网络连接管理 WIFI SERVICE wifi WifiManager Wi-Fi连接管理 INPUT METHOD SERVICE input method InputMethodManager 输入法管理
9.1 位置服务 n 位置服务 q Android支持的系统级服务表 Context类的静态常量 值 返回对象 说明 LOCATION_SERVICE location LocationManager 控制位置等设备的更新 WINDOW_SERVICE window WindowManager 最顶层的窗口管理器 LAYOUT_INFLATER_SERV ICE layout_inflater LayoutInflater 将 XML 资源实例化为 View NOTIFICATION_SERVICE notification NotificationManager 后台事件通知 POWER_SERVICE power PowerManager 电源管理 ALARM_SERVICE alarm AlarmManager 在指定时间接受Intent KEYGUARD_SERVICE keyguard KeyguardManager 锁定或解锁键盘 SEARCH_SERVICE search SearchManager 访问系统的搜索服务 VIBRATOR_SERVICE vibrator Vibrator 访问支持振动的硬件 CONNECTIVITY_SERVICE connection ConnectivityManager 网络连接管理 WIFI_SERVICE wifi WifiManager Wi-Fi连接管理 INPUT_METHOD_SERVICE input_method InputMethodManager 输入法管理
9.1位置服务 ▣位置服务 口在指定LocationManager的定位方法后,则可以调用 getLastKnownLocation()方法获取当前的位置信息。以使 用GPS定位为例,获取位置信息的代码如下 1 String provider LocationManager.GPS PROVIDER; 2 Location location=locationManager.getLastKnownLocation(provider); 代码第2行返回的Location对象中,包含了可以确定位置 的信息,如经度、纬度和速度等 口通过调用Location中的getLatitude(O和getLongitude()方 法可以分别获取位置信息中的纬度和经度,示例代码如 下 1 double lat location.getLatitude(); 2 double Ing location.getLongitude();
9.1 位置服务 n 位置服务 q 在指定LocationManager的定位方法后,则可以调用 getLastKnownLocation()方法获取当前的位置信息。以使 用GPS定位为例,获取位置信息的代码如下 1 String provider = LocationManager.GPS_PROVIDER; 2 Location location = locationManager.getLastKnownLocation(provider); n 代码第2行返回的Location对象中,包含了可以确定位置 的信息,如经度、纬度和速度等 q 通过调用Location中的getLatitude()和getLongitude()方 法可以分别获取位置信息中的纬度和经度,示例代码如 下 1 double lat = location.getLatitude(); 2 double lng = location.getLongitude();