一切就绪!

着手开发前,请先阅读我们的开发者文档

激活 Google Places API for Android

为帮助您起步,我们将引导您在 Google 开发者控制台中先完成几项任务:

  1. 创建或选择项目
  2. 激活 Google Places API for Android
  3. 创建相应密钥
继续

当前地点

使用 Google Places API for Android,您可以发现设备的当前所在地点,也就是设备当前报告位置的地点。例如,本地商家、景点和地理位置就都属于地点。

权限

如果您的应用使用 PlaceDetectionApi.getCurrentPlace(),则您必须请求 ACCESS_FINE_LOCATION 权限。

Android 6.0 Marshmallow 中的新权限模型

Android 6.0 Marshmallow 引入新的权限处理模型,简化了用户安装和升级应用的过程。如果您使用的是 8.1 版或更高版本的 Google Play 服务,您可以针对 Android 6.0 Marshmallow SDK 配置您的应用,并使用新的权限模型。

如果您的应用支持这种新权限模型,则用户无需在安装或升级应用时授予任何权限。在这种模型中,应用必须在运行时需要权限时请求权限,并且系统会向用户显示请求权限的对话框。

如需了解更多信息,请参阅相关文档了解 Android 6.0 Marshmallow 以及针对新的权限模型您必须对应用进行哪些更改。

使用限制

使用 PlaceDetectionApi.getCurrentPlace() 方法需要遵守分级查询限制。请参阅关于使用限制的文档。

获取当前位置

如需查找本地商家或设备当前所在地点,请调用 PlaceDetectionApi.getCurrentPlace()

您可以选择指定一个 PlaceFilter,以将结果限制为一个或多个地点 ID(最多 10 个),或者仅选择当前打开的地点。如果未指定筛选器,则不会筛选结果。

API 会在 PendingResult 中返回 PlaceLikelihoodBufferPlaceLikelihoodBuffer 包含表示类似地点的 PlaceLikelihood 对象列表。对于每个地点,结果中都包含指示地点是正确地点的可能性信息。如果没有与筛选条件对应的已知地点,缓冲区可能为空。

您可以调用 PlaceLikelihood.getPlace() 来检索 Place 对象,调用 PlaceLikelihood.getLikelihood() 来获取地点的可能性评分。值越高,表示该地点是最佳匹配项的可能性越大。

以下是检索设备最可能位于的地点列表并记录每个地点的名称和可能性的代码示例。

PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi
    .getCurrentPlace(mGoogleApiClient, null);
result.setResultCallback(new ResultCallback<PlaceLikelihoodBuffer>() {
  @Override
  public void onResult(PlaceLikelihoodBuffer likelyPlaces) {
    for (PlaceLikelihood placeLikelihood : likelyPlaces) {
      Log.i(TAG, String.format("Place '%s' has likelihood: %g",
          placeLikelihood.getPlace().getName(),
          placeLikelihood.getLikelihood()));
    }
    likelyPlaces.release();
  }
});

关于可能性值的说明:

  • 可能性提供地点作为针对单一请求所返回的地点列表内的最佳匹配项的相对可能性。不能在不同请求之间比较可能性。
  • 可能性的值将在 0 和 1.0 之间。
  • 给定 PlaceLikelihoodBuffer 中的可能性之和始终小于或等于 1.0。请注意,和不一定是 1.0。

例如,要表示地点 A 是正确地点的可能性为 55%,地点 B 是正确地点的可能性为 35%,PlaceLikelihoodBuffer 将具有两个成员,即可能性为 0.55 的地点 A 和可能性为 0.35 的地点 B。

在应用中显示提供方说明

如果您的应用要显示通过 PlaceDetectionApi.getCurrentPlace() 获取的信息,则该应用还必须显示提供方说明。请参阅关于提供方说明的文档。

发送以下问题的反馈:

此网页
location_on
Google Places API for Android