申请用户权限

为了接收来自NETWORK_PROVIDERGPS_PROVIDER的位置更新,你必须通过声明ACCESS_COARSE_LOCATIONACCESS_FINE_LOCATION权限来分别的在你的Android清单中申请用户权限,如:

<manifest ... >

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

...

</manifest>

没有这些权限,你的应用程序会在请求位置更新时发生运行时错误。

注意:如果你同时使用了NETWORK_PROVIDER和GPS_PROVIDER,那么你只需要申请ACCESS_FINE_LOCATION权限,因为它包含这两个位置提供器的权限。(ACCESS_COARSE_LOCATION只包含了NETWORK_PROVIDER权限。)

定义最佳性能的模型

基于位置的应用程序目前是比较普遍的,但是由于精度不佳,需要使用多种方法来获取用户移动的位置,并且还希望能够达到省电的目的,因此获取用户位置是复杂的。要克服获取良好用户位置的障碍,同时保护电池的消耗,你就必须定义一个一致的模型来指定应用程序如何获取用户位置。这个模型包含了启动和停止监听更新的时机和使用被缓存的位置数据的时机。

获取用户位置的流程

以下是典型的获取用户位置的过程流程:

1.启动应用程序;

2.稍后,启动对期望的位置提供器的更新的监听;

3.通过筛选新的位置,来维持一个当前最优的位置评估;

4.停止对位置更新的监听;

5.利用最后评估的最佳位置。

1用一个可视的时间轴,演示了应用程序中所监听的位置更新,以及这些事件所发生的时机:

Android位置策略(二)_第1张图片

1.代表应用程序中用于监听位置更新的窗口的时间轴。

这个窗口模型---在接收位置更新期间,你需要决定把基于位置的服务添加到你的应用程序中的时机。

更多相关文章

  1. Android 应用程序获得版本号
  2. 享受 Android 应用程序的 Java 技术盛宴
  3. Android 应用程序签名
  4. Android 应用程序退出的四种方法
  5. Android应用程序签名详解 简介
  6. 降低Android应用程序的耗电量

随机推荐

  1. android+mina 开发环境搭建
  2. android:descendantFocusability用法简析
  3. Android项目打包异常:Lint found fatal er
  4. TraceView性能检测
  5. Android底部导航BottomNavigationBar的基
  6. android launcher使hotseat item显示标题
  7. Android 动态设置颜色
  8. Android Battery Dog开源项目介绍
  9. Android用属性动画拖动view到任意位置
  10. Android Studi3.1.4利用cmake搭建jni-Con