迁移到 Google Play services 的位置信息和情境 API

Google 建议在需要位置信息服务的应用中使用 Google Play services 的位置信息和情境 API。如果您的应用使用了框架位置信息 API,那么迁移到 Google Play services 至关重要,以便利用最新的 Google 支持功能。

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

  1. Google Play services 提供了一个简单的界面和更清晰的 API surface。
  2. 您指定所需的服务质量 (QoS),API 会为您管理底层技术。
  3. Google Play services API 针对性能和电池用量进行了优化。
  4. Google Play services API 正在积极维护中。Google 正在不断改进算法并添加更多功能。

更新您的应用

以下步骤描述了更新应用以使用位置信息和情境 API 的流程:

  1. 在您的项目中设置 Google Play services。
  2. 使用位置信息设置 API 验证当前位置信息设置。
  3. 将 Google Play services 用于地理围栏、活动识别和感知等复杂功能。
  4. 用融合位置提供程序 API 替换框架位置信息 API 的用法。
  5. 移除对框架位置信息 API 的引用。

在您的项目中设置 Google Play services

为了使位置信息和情境 API 可用于您的项目,您必须添加对 Google Maven 仓库的引用,并声明对所需 API 的依赖。有关详情,请参阅设置 Google Play services

使用位置信息设置 API

通过使用位置信息设置 API,应用可以提供所需的 QoS 级别,并且 API 会请求用户对系统设置进行适当的更改。请按照以下步骤在您的应用中使用位置信息设置 API:

  1. 在应用清单中请求位置信息权限
  2. 设置LocationRequest 对象,该对象指定所需的 QoS 级别。
  3. 使用位置信息设置 API 检查当前设置。

有关详情,请参阅更改位置信息设置,或参阅Google Play 位置信息示例中的示例代码。

将 Google Play services 用于复杂功能

Google Play services 库可帮助您围绕情境和用户周围环境感知实现新颖的用户体验。位置信息和情境库利用了除了位置信息之外的其他传感器,并且以省电的方式进行,从而为您的应用提供更准确的数据,同时减少对电池续航时间的影响。

将这些库集成到您的应用中,而不是编写自己的自定义解决方案:

用融合位置提供程序 API 替换框架位置信息 API

您可以使用融合位置提供程序 API 获取位置信息数据,例如纬度和经度。融合位置提供程序 API 使用Location 对象(就像位置信息框架 API 一样)来表示地理位置。此 API 提供了侦听位置信息更新以及获取最后已知位置信息的功能。所有这些功能都使得融合位置提供程序 API 成为替换使用框架位置信息 API 的组件的良好选择,同时对应用的其余部分进行最小的更改。

获取最后已知位置信息是许多体验的良好起点,因为它是一项快速操作,使用设备上任何客户端请求的位置信息数据。为了定期跟踪位置信息,您的应用可以订阅接收位置信息更新,这提供了最新数据并支持更复杂的体验。

移除对框架位置信息 API 的引用

将对 com.google.android.location 包中类的引用替换为对 com.google.android.gms.location 包中类的引用,但对融合位置提供程序 API 使用的 Location 类的引用除外。您通常可以从应用中移除管理不同提供程序(例如 GPS 和 Wi-Fi)的组件。位置信息和情境 API 会自动管理这些提供程序。

测试您的应用

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

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

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