一切就绪!

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

激活 Google Places API for Android

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

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

显示提供方说明

在显示 Google Places API for Android 中的数据(如自动完成结果或地点名称和地址)时,必须遵守一些提供方说明和 Google 徽标要求。

  1. 概览
  2. 显示地图
  3. “由 Google 提供支持”提供方说明
  4. 第三方内容提供方说明

概览

提供方说明和徽标要求可归为以下几个类别:

  • Google 地图(如果已显示地图)。
  • “由 Google 提供支持”提供方说明。
  • 第三方所提供内容的提供方说明。

这些要求适用于地点选取器 UI 小工具以及编程 API 调用。如果应用已通过地点选取器检索到某个地点,然后在跟进屏幕上显示数据,但不显示地图,则该应用必须在跟进屏幕上显示提供方说明。

显示地图

无需显示地图。如果您的应用在地图上显示 Places API 数据,则该地图必须是显示有 Google 徽标的 Google 地图。在与 Google 地图相同的屏幕上显示 Places API 数据的应用不需要向 Google 提供进一步的提供方说明。

请注意,您仍然需要显示任何相关第三方内容提供方说明

“由 Google 提供支持”提供方说明

如果您的应用在页面或视图上显示 Places API 数据,但不显示 Google 地图,则必须在显示该数据的同时也显示“由 Google 提供支持”图像。例如,如果您的应用在一个屏幕上显示通过 API 检索到的地点列表,而包含这些地点的 Google 地图位于另一个屏幕上,则第一个屏幕必须显示“由 Google 提供支持”提供方说明。

“由 Google 提供支持”图像包含在 Google Play 服务库中,具有适合各种 Android 应用的尺寸。您不得以任何方式修改这些图像或调整其尺寸。

  • 用于明亮背景:@drawable/powered_by_google_light
  • 用于暗淡背景:@drawable/powered_by_google_dark

第三方内容提供方说明

请按照以下说明,通过地点选取器或其他 API 调用命令来检索第三方提供方说明,然后在您的应用中显示提供方说明。

从地点选取器检索提供方说明

要从地点选取器检索提供方说明,请调用 PlacePicker.getAttributions(),向其传递包含用户已选定地点的当前 Intent。该方法会返回一个 HTML 字符串,如果没有要显示的提供方说明,则会返回 null

String thirdPartyAttributions = PlacePicker.getAttributions(intent);
if (thirdPartyAttributions == null) {
  thirdPartyAttributions = "";
}

从 PlaceLikelihoodBuffer 检索提供方说明

如果您的应用要显示通过请求设备的当前地点获得的信息,则该应用还必须显示针对所获得的地点详情的第三方提供方说明。

API 会返回包含类似地点列表的 PlaceLikelihoodBuffer。要从 PlaceLikelihoodBuffer 检索提供方说明,请调用 PlaceLikelihoodBuffer.getAttributions()。该方法会返回一个 HTML 字符序列,如果没有要显示的提供方说明,则会返回 null

PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi
    .getCurrentPlace(mGoogleApiClient, null);
result.setResultCallback(new ResultCallback<PlaceLikelihoodBuffer>() {
  @Override
  public void onResult(PlaceLikelihoodBuffer likelyPlaces) {
    final CharSequence thirdPartyAttributions =
        likelyPlaces.getAttributions();
    ...
  }
  likelyPlaces.release();
});

从 PlaceBuffer 检索提供方说明

如果您的应用要显示通过调用按 ID 获取地点获得的信息,则该应用还必须显示针对所获得的地点详情的第三方提供方说明。

API 会返回包含地点列表的 PlaceBuffer。要从 PlaceBuffer 检索提供方说明,请调用 PlaceBuffer.getAttributions()。该方法会返回一个 HTML 字符序列,如果没有要显示的提供方说明,则会返回 null

Places.GeoDataApi.getPlaceById(mGoogleApiClient, placeId)
    .setResultCallback(new ResultCallback<PlaceBuffer>() {
  @Override
  public void onResult(PlaceBuffer places) {
    if (places.getStatus().isSuccess()) {
        ...
        final CharSequence thirdPartyAttributions =
            places.getAttributions();
    }
    places.release();
  }
});

显示照片的提供方说明

如果您的应用显示照片,则必须为每一张包含提供方说明的照片显示提供方说明。如需获取照片的提供方说明,请调用 PlacePhotoMetadata.getAttributions()。该方法会返回一个 HTML 字符序列,如果没有要显示的提供方说明,则会返回 null

Places.GeoDataApi.getPlacePhotos(mGoogleApiClient, placeId)
    .setResultCallback(new ResultCallback<PlacePhotoMetadataResult>() {
  @Override
  public void onResult(PlacePhotoMetadataResult photos) {
    if (photos.getStatus().isSuccess()) {
      // Get attribution for the first photo in the list.
      PlacePhotoMetadataBuffer photoResults = photos.getPhotoMetadata();
      if (photoResults.getCount() > 0) {
        PlacePhotoMetadata photo = photoMetadata.get(0);
        CharSequence attribution = photo.getAttributions();
      }
      photoResults.release();
    }
});

显示第三方提供方说明

对第三方提供方的说明包含 HTML 格式的内容,您必须按其提供格式向用户显示这些内容。必须保留 HTML 中包括的任何链接。我们建议您的应用将这些信息显示在地点详情下方。

API 会为应用使用的所有地点生成提供方说明。这些提供方说明是为每个 API 调用命令提供,而不是为每个地点提供。

显示提供方式说明的一种方式是使用 TextView。例如:

TextView attributionsText = (TextView) findViewById(R.id.attributions);
String thirdPartyAttributions = PlacePicker.getAttributions(intent);
if (thirdPartyAttributions == null) {
  thirdPartyAttributions = "";
}
attributionsText.setText(Html.fromHtml(thirdPartyAttributions));

第三方提供方说明示例

Listings by <a href="https://www.example.com/">Example Company</a>

发送以下问题的反馈:

此网页
location_on
Google Places API for Android