初始化使用方 SDK

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

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

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

获取 ConsumerApi 实例

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

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

您的应用应按照消费者 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 结果后不运行这些操作,Google 地图 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 备注

在内部,使用 SSL/TLS 实现的使用方 SDK 会与车队引擎服务进行安全通信。Android API 23 或更低版本可能需要 SecurityProvider 补丁才能与服务器通信。如需详细了解如何在 Android 中使用 SSL,请参阅 Security GMS Provider。本文还包含用于修补安全提供程序的代码示例。

后续步骤

设置地图