Google 建议在需要位置信息服务的应用中使用 Google Play services 的位置信息和情境 API。如果您的应用使用了框架位置信息 API,那么迁移到 Google Play services 至关重要,以便利用最新的 Google 支持功能。
使用 Google Play services 是在您的应用中获取位置信息服务的首选选项,原因如下:
- Google Play services 提供了一个简单的界面和更清晰的 API surface。
- 您指定所需的服务质量 (QoS),API 会为您管理底层技术。
- Google Play services API 针对性能和电池用量进行了优化。
- Google Play services API 正在积极维护中。Google 正在不断改进算法并添加更多功能。
更新您的应用
以下步骤描述了更新应用以使用位置信息和情境 API 的流程:
- 在您的项目中设置 Google Play services。
- 使用位置信息设置 API 验证当前位置信息设置。
- 将 Google Play services 用于地理围栏、活动识别和感知等复杂功能。
- 用融合位置提供程序 API 替换框架位置信息 API 的用法。
- 移除对框架位置信息 API 的引用。
在您的项目中设置 Google Play services
为了使位置信息和情境 API 可用于您的项目,您必须添加对 Google Maven 仓库的引用,并声明对所需 API 的依赖。有关详情,请参阅设置 Google Play services。
使用位置信息设置 API
通过使用位置信息设置 API,应用可以提供所需的 QoS 级别,并且 API 会请求用户对系统设置进行适当的更改。请按照以下步骤在您的应用中使用位置信息设置 API:
- 在应用清单中请求位置信息权限。
- 设置
LocationRequest
对象,该对象指定所需的 QoS 级别。 - 使用位置信息设置 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 商店应用的模拟器,请参阅创建和管理虚拟设备。