เริ่มต้น SDK ของผู้บริโภค

ก่อนเริ่มขั้นตอนเหล่านี้ โปรดตรวจสอบว่าคุณได้เปิดใช้บริการที่เหมาะสมและ Consumer SDK ตามที่อธิบายไว้ในส่วนก่อนหน้า

หากต้องการเริ่มต้น Consumer SDK ให้ทำตามขั้นตอนต่อไปนี้

  1. รับอินสแตนซ์ ConsumerAPI
  2. เริ่มต้น Maps SDK เพื่อขอ Renderer ที่ต้องการ

รับอินสแตนซ์ ConsumerApi

หากต้องการใช้ Consumer SDK แอปของคุณต้องเริ่มต้น Singleton ConsumerApi แบบไม่พร้อมกัน เมธอดการเริ่มต้นจะใช้คลาส AuthTokenFactory เพื่อสร้างโทเค็น JWT ใหม่สำหรับผู้ใช้เมื่อจำเป็น

providerId คือรหัสโปรเจ็กต์ ของโปรเจ็กต์ Google Cloud ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างโปรเจ็กต์ Fleet Engine ได้ที่ สร้างโปรเจ็กต์ Fleet Engine ในคู่มือ Fleet Engine

แอปของคุณควรใช้ AuthTokenFactory ตามที่อธิบายไว้ใน Consumer SDK Authentication

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 และ Maps Renderer

Consumer SDK เวอร์ชัน 2.0.0 ขึ้นไปรองรับ Maps SDK สำหรับ Android เวอร์ชัน 18.1.0 ขึ้นไป ตารางต่อไปนี้สรุป Renderer เริ่มต้นตามเวอร์ชัน Maps SDK และความสามารถในการรองรับ Renderer ทั้ง 2 รายการ หากเป็นไปได้ ให้ใช้ Renderer ล่าสุด หากต้องใช้ Renderer เวอร์ชันเก่า ให้ระบุอย่างชัดเจนโดยใช้ MapsInitializer.initialize()

เวอร์ชัน Maps SDK รองรับ Renderer ล่าสุด รองรับ Renderer เวอร์ชันเก่า Renderer เริ่มต้น
เวอร์ชัน 18.1.0 และต่ำกว่า ใช่ ใช่ เวอร์ชันเก่า*
V18.2.0 ใช่ ใช่ ล่าสุด

* เมื่อเปิดตัว Maps Renderer ใหม่ Renderer ล่าสุดจะเป็น ค่าเริ่มต้น

หากต้องใช้ Renderer ที่ต้องการ ให้เรียกใช้การดำเนินการแสดงผล UI ทั้งหมดหลังจาก OnMapsSdkInitializedCallback แสดงผลลัพธ์ การดำเนินการแสดงผล UI ได้แก่ การดำเนินการต่อไปนี้

  • Inflate มุมมองที่มี GoogleMapView หรือ ConsumerMapView

  • วางมาร์เกอร์บน ConsumerMapView

หากคุณไม่เรียกใช้การดำเนินการเหล่านี้หลังจากได้รับผลลัพธ์ OnMapsSdkInitializedCallback Maps SDK จะไม่จัดสรร Renderer ที่ต้องการ และระบบจะแสดงผลมุมมองแผนที่ด้วย Renderer เริ่มต้นแทน

เริ่มต้น Maps SDK ก่อนเริ่มต้น Consumer SDK

  1. ในคลาส Application หรือ Activity เริ่มต้น ให้เรียกใช้ MapsInitializer.initialize()

  2. รอผลลัพธ์คำขอ Renderer ก่อนเริ่มต้น 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 เพื่อสื่อสารกับเซิร์ฟเวอร์ ดูข้อมูลเพิ่มเติม เกี่ยวกับการใช้ SSL ใน Android ได้ที่ Security GMS Provider นอกจากนี้ บทความดังกล่าวยังมีตัวอย่างโค้ดสำหรับแพตช์ Security Provider ด้วย

ขั้นตอนถัดไป

ตั้งค่าแผนที่