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

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

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

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

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

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

providerId คือรหัสโปรเจ็กต์ของโปรเจ็กต์ Google Cloud ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างโปรเจ็กต์ 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 และ Maps

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

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

* เมื่อมีการเปิดตัวโปรแกรมแสดงผลแผนที่แบบใหม่ โปรแกรมแสดงผลล่าสุดจะเป็นค่าเริ่มต้น

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

  • การขยายมุมมองที่มี GoogleMapView หรือ ConsumerMapView

  • การวางเครื่องหมายบน 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

สำหรับใช้ภายใน การใช้ Consumer SDK จะใช้ SSL/TLS เพื่อสื่อสารกับบริการ Fleet Engine อย่างปลอดภัย Android API เวอร์ชัน 23 หรือต่ำกว่าอาจต้องใช้SecurityProviderแพตช์เพื่อสื่อสารกับเซิร์ฟเวอร์ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการทำงานร่วมกับ SSL ใน Android โปรดดูผู้ให้บริการ GMS ด้านความปลอดภัย บทความนี้ยังมีตัวอย่างโค้ดสำหรับแพตช์ผู้ให้บริการด้านความปลอดภัยด้วย

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

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