初始化使用方 SDK

在开始这些流程之前,请确保您已按照前面部分中的说明启用适当的服务和 Consumer SDK。

如需初始化使用方 SDK,请按以下步骤操作:

  1. 获取 ConsumerAPI 实例
  2. 初始化 Maps SDK 以请求首选渲染程序

获取 ConsumerApi 实例

如需使用消费者 SDK,您的应用需要初始化单例 ConsumerApi 异步执行。初始化方法接受 AuthTokenFactory 类,用于在必要时为用户生成新的 JWT 令牌。

providerId 是您的 Google Cloud 项目的项目 ID。有关 如需了解如何创建 Fleet Engine 项目,请参阅 在 Fleet Engine 指南中创建 Fleet Engine 项目

您的应用应实现 AuthTokenFactory,如消费者 SDK 中所述 身份验证

Java

Task<ConsumerApi> consumerApiTask = ConsumerApi.initialize(
    this, "myProviderId", authTokenFactory);

consumerApiTask.addOnSuccessListener(
  consumerApi -> this.consumerApi = consumerApi);

Kotlin

val consumerApiTask =
  ConsumerApi.initialize(this, "myProviderId", authTokenFactory)

consumerApiTask?.addOnSuccessListener { consumerApi: ConsumerApi ->
  this@YourActivity.consumerApi = consumerApi
}

Maps SDK 和地图渲染程序

使用方 SDK v2.0.0 及更高版本支持 Maps SDK for Android v18.1.0 和 。下表汇总了各 Maps SDK 版本的默认渲染程序 以及这两种渲染程序的可支持性如有可能,请使用最新版渲染程序。 如果必须使用旧版渲染程序,请使用以下方式进行明确指定: MapsInitializer.initialize()

Google 地图 SDK 版本 支持最新版渲染程序 支持旧版渲染程序 默认渲染程序
v18.1.0 及更低版本 旧版*
V18.2.0 最新

* 随着新版地图渲染程序的发布,最新版渲染程序将成为默认渲染程序。

如果必须使用首选渲染程序,请运行所有界面渲染操作 after OnMapsSdkInitializedCallback 会返回一个结果。界面呈现 包括以下操作:

  • 膨胀包含 GoogleMapViewConsumerMapView 的视图。

  • 正在 ConsumerMapView 上放置标记。

如果您在收到 OnMapsSdkInitializedCallback 结果,则 Maps SDK 不会分配您的 首选渲染程序,而地图视图则由默认渲染程序渲染。

先初始化 Maps SDK,然后再初始化 Consumer SDK

  1. Application 或启动 Activity 类中,调用 MapsInitializer.initialize()

  2. 请在初始化 Consumer SDK 之前等待渲染程序请求结果。

如需了解详情,请参阅以下示例。

Java

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  initViews();

  MapsInitializer.initialize(getApplicationContext(), Renderer.LATEST,
      new OnMapsSdkInitializedCallback() {
        @Override
        public void onMapsSdkInitialized(Renderer renderer) {
          switch (renderer) {
            case LATEST:
              Log.i("maps_renderer", "LATEST renderer");
              break;
            case LEGACY:
              Log.i("maps_renderer", "LEGACY renderer");
              break;
          }

          initializeConsumerSdk();
        }
      });
}

Kotlin

fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  setContentView(R.layout.main)
  initViews()

  MapsInitializer.initialize(
    getApplicationContext(), Renderer.LATEST,
    object : OnMapsSdkInitializedCallback() {
      fun onMapsSdkInitialized(renderer: Renderer?) {
        when (renderer) {
          LATEST -> Log.i("maps_renderer", "LATEST renderer")
          LEGACY -> Log.i("maps_renderer", "LEGACY renderer")
        }
        initializeConsumerSdk()
      }
    })
  }

SSL/TLS 注意事项

在内部,使用方 SDK 实现使用 SSL/TLS 安全地进行通信 Fleet Engine 服务Android API 版本 23 或更早版本可能需要 用于与服务器通信的 SecurityProvider 补丁。更多信息 有关在 Android 中使用 SSL 的信息,请参阅 GMS 安全 提供商。 本文还包含用于为安全提供程序打补丁的代码示例。

后续步骤

设置地图