初始化使用方 SDK

在开始执行这些步骤之前,请确保您已按照前面部分所述启用了适当的服务和使用方 SDK。

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

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

获取 ConsumerApi 实例

如需使用 Consumer SDK,您的应用需要异步初始化单例 ConsumerApi。初始化方法会使用 AuthTokenFactory 类在必要时为用户生成新的 JWT 令牌。

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

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

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 最新

* 随着新版地图渲染程序的推出,系统将默认使用最新版渲染程序。

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

  • 膨胀包含 GoogleMapViewConsumerMapView 的视图。

  • ConsumerMapView 上放置标记。

如果您在收到 OnMapsSdkInitializedCallback 结果后未运行这些操作,Maps SDK 不会分配您的首选渲染程序,而地图视图将由默认渲染程序渲染。

先初始化 Maps SDK,然后再初始化使用方 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,请参阅 Security GMS Provider。本文还包含用于为安全提供程序打补丁的代码示例。

后续步骤

设置地图