初始化 Consumer SDK

開始執行這些程序之前,請先確認您已啟用適當的服務和 Consumer SDK,如先前章節所述。

如要初始化 Consumer SDK,請按照下列步驟操作:

  1. 取得 ConsumerAPI 例項
  2. 初始化 Maps SDK,要求使用偏好的算繪器

取得 ConsumerApi 執行個體

如要使用 Consumer SDK,應用程式必須非同步初始化單例項 ConsumerApi。初始化方法會採用 AuthTokenFactory 類別,在必要時為使用者產生新的 JWT 權杖。

providerId 是 Google Cloud 專案的專案 ID。如要進一步瞭解如何建立 Fleet Engine 專案,請參閱 Fleet Engine 指南中的「建立 Fleet Engine 專案」。

應用程式應實作 AuthTokenFactory,如「Consumer 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 和地圖算繪器

Consumer SDK 2.0.0 以上版本支援 Maps SDK for Android 18.1.0 以上版本。下表摘要說明各個 Maps SDK 版本的預設轉譯器,以及這兩種轉譯器的支援情形。請盡可能使用最新版算繪器。 如果必須使用舊版轉譯器,請使用 MapsInitializer.initialize() 明確指定。

地圖 SDK 版本 支援最新轉譯器 支援舊版算繪器 預設算繪器
V18.1.0 以下版本 舊版*
V18.2.0 最新

* 新版地圖轉譯器推出後,系統會預設使用最新版轉譯器。

如必須使用偏好的轉譯器,請在 OnMapsSdkInitializedCallback 傳回結果,執行所有 UI 轉譯作業。UI 算繪作業包括下列作業:

  • 加載含有 GoogleMapViewConsumerMapView 的檢視區塊。

  • ConsumerMapView 上放置標記。

如果收到 OnMapsSdkInitializedCallback 結果後未執行這些作業,地圖 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) 注意事項

在內部,Consumer SDK 實作項目會使用 SSL/TLS 與 Fleet Engine 服務安全地通訊。Android API 23 以前的版本可能需要SecurityProvider修補程式,才能與伺服器通訊。如要進一步瞭解如何在 Android 中使用 SSL,請參閱「Security GMS Provider」。本文也包含修補安全性提供者的程式碼範例。

後續步驟

設定地圖