Google 建议在需要位置服务的应用中使用 Google Play 服务中的 位置和上下文 API。如果您的应用使用 框架位置 API,则务必迁移到 Google Play 服务,以利用最新的 Google 提供的功能。
出于以下原因,使用 Google Play 服务是获取应用中位置服务的首选选项
- Google Play 服务提供简单的界面和更简洁的 API 表面。
- 您可以指定所需的 QoS 级别,API 会为您管理底层技术。
- Google Play 服务 API 针对性能和电池使用情况进行了优化。
- Google Play 服务 API 处于积极维护状态。Google 不断改进算法并添加更多功能。
更新您的应用
以下步骤描述了更新应用以使用位置和上下文 API 的过程
- 在您的项目中设置 Google Play 服务。
- 使用位置设置 API 验证当前位置设置。
- 将 Google Play 服务用于地理围栏、活动识别和感知等复杂功能。
- 将框架位置 API 的用法替换为融合位置提供程序 API。
- 删除对框架位置 API 的引用。
在您的项目中设置 Google Play 服务
要使位置和上下文 API 可供您的项目使用,您必须添加对 Google Maven 存储库的引用,并声明对所需 API 的依赖项。有关更多信息,请参阅 设置 Google Play 服务。
使用位置设置 API
通过使用位置设置 API,应用可以提供所需的 QoS 级别,并且 API 会提示用户对系统设置进行相应的更改。请按照以下步骤在您的应用中使用位置设置 API
- 在应用清单中 请求位置权限。
- 设置一个
LocationRequest
对象,该对象指定所需的 QoS 级别。 - 使用位置设置 API 检查当前设置。
有关更多信息,请参阅 更改位置设置,或查看 Google Play 位置示例 以获取示例代码。
将 Google Play 服务用于复杂功能
Google Play 服务库可帮助您围绕用户周围环境的上下文和感知实现新颖的用户体验。各种 位置和上下文 库利用除了位置之外的其他传感器,并以节能的方式进行,为您的应用提供更准确的数据,同时减少对电池寿命的影响。
在您的应用中整合这些库,而不是编写您自己的自定义解决方案
将框架位置 API 替换为融合位置提供程序 API
您可以使用融合位置提供程序 API 获取位置数据,例如纬度和经度。融合位置提供程序 API 使用 Location
对象(就像位置框架 API 一样)来表示地理位置。该 API 提供的功能包括侦听位置更新以及获取最后已知位置。所有这些功能使融合位置提供程序 API 成为替换使用框架位置 API 的组件的理想选择,而对应用的其余部分进行的更改最少。
获取最后已知位置 是许多体验的良好起点,因为它是一种快速操作,使用设备上任何客户端请求的位置数据。要定期跟踪位置,您的应用可以订阅 接收位置更新,这可以提供最新数据并支持更复杂的体验。
删除对框架位置 API 的引用
将对 com.google.android.location
包中类的引用替换为 com.google.android.gms.location
包中的类,但对 Location
类的引用除外,融合位置提供程序 API 使用该类。您通常可以从您的应用中删除管理不同提供程序(例如 GPS 和 Wi-Fi)的组件。位置和上下文 API 会自动管理这些提供程序。
测试您的应用
要运行使用最新版 Google Play 服务的应用,您需要安装了 Play 商店应用的设备,并且必须登录 Google 帐户。出于开发目的,您可以使用以下选项
- 使用 USB 线缆连接到开发环境的物理设备。
- 安装了 Play 商店应用的模拟器。
有关将物理设备连接到开发环境的更多信息,请参阅 在硬件设备上运行应用。要创建包含 Play 商店应用的模拟器,请参阅 创建和管理虚拟设备。