迁移到 Location API 和 Context API

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

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

  1. Google Play 服务提供了一个简单的接口和更简洁的 API Surface。
  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 商店应用的模拟器,请参阅创建和管理虚拟设备