迁移到 Location API 和 Context API

Google 建议您在需要位置信息服务的应用的 Google Play 服务中使用 Location API 和 Context API。如果您的应用使用框架位置 API,请务必先迁移到 Google Play 服务,以充分利用由 Google 提供强有力技术后盾的最新功能。

使用 Google Play 服务是在应用中获取位置信息服务的首选方式,原因如下:

  1. Google Play 服务提供了一个简单的接口和更简洁的 API 界面。
  2. 您可以指定所需的服务质量,API 会为您管理底层技术。
  3. Google Play 服务 API 针对性能和电池用量进行了优化。
  4. Google Play 服务 API 得到了积极维护。Google 还在不断改进算法及添加更多功能。

更新应用

以下步骤介绍了更新应用以使用 Location API 和 Context API 的过程:

  1. 在您的项目中设置 Google Play 服务。
  2. 更新应用以使用 Location Settings API 验证当前的位置信息设置。
  3. 替换用于复杂任务的自定义逻辑,例如尝试通过 Geofencing API 或 Activity Recognition API 等高级 API 来判断用户是否靠近某个区域或猜测用户的行为。
  4. 将 Framework Location API 替换为 Fused Location Provider API。
  5. 移除对 Framework Location API 的引用。

在项目中设置 Google Play 服务

要在项目中使用 Location API 和 Context API,您必须添加对 Google Maven 代码库的引用,并声明依赖所需 API。如需了解详情,请参阅设置 Google Play 服务

使用 Location Settings API

通过使用 Location Settings API,应用会提供所需的服务质量 (QoS) 级别,并且此 API 会请求用户对系统设置进行适当的更改。要在应用中使用 Location Settings API,请按以下步骤操作:

  1. 在应用清单中请求位置权限。
  2. 设置用于指定所需服务质量 (QoS) 级别的 LocationRequest 对象。
  3. 使用 Location Settings API 检查当前设置。

如需了解详情,请参阅更改位置信息设置;如需查看示例代码,请参阅 Google Play 位置示例

将自定义逻辑替换为高级 API

Geofencing API 和 Activity Recognition API 之类的高级 API 提供了应用可用来提供出色体验的功能。不过,这些功能需要复杂的逻辑,难以进行编码和维护。如果您的应用具有此类自定义逻辑,则应将其替换为利用高级 API 的组件。

如需实现方面的详细信息,请参阅关于特定 Location API 和 Context API 的指南。

将 Framework Location API 替换为 Fused Location Provider API

您可以使用 Fused Location Provider API 获取位置数据(例如纬度和经度)。Fused Location Provider API 像 Location Framework API 一样使用 Location 对象来表示地理位置。该 API 提供了一些功能,可监听位置信息更新以及获取最近一次的已知位置。所有这些功能使 Fused Location Provider API 成为替代使用 Framework Location API 的组件的不错选择,只需对应用的其余部分做出很小的改动即可。

获取最近一次的已知位置可很好地开启大多数体验,因为它是使用设备上任何客户端请求的位置数据的快速操作。要定期跟踪位置信息,您的应用可以订阅接收位置信息更新,以便获取最新数据及实现更复杂的体验。

移除对 Framework Location API 的引用

将对 com.google.android.location 软件包中类的引用替换为对 com.google.android.gms.location 软件包中类的引用,但对 Fused Location Provider API 使用的 Location 类的引用除外。通常情况下,您可以从应用中移除管理不同提供程序(例如 GPS 和 WLAN)的组件。Location API 和 Context API 会自动管理这些提供程序。

测试应用

要运行使用最新版 Google Play 服务的应用,您需要安装了 Play 商店应用且必须登录 Google 帐号的设备。出于开发目的,您可以使用以下选项:

  • 使用 USB 线连接到开发环境的物理设备。
  • 安装了 Play 商店应用的模拟器。

如需详细了解如何将物理设备连接到开发环境,请参阅在硬件设备上运行应用。要创建包含 Play 商店应用的模拟器,请参阅创建和管理虚拟设备