ก่อนเริ่มขั้นตอนเหล่านี้ โปรดตรวจสอบว่าคุณได้เปิดใช้บริการที่เหมาะสมและ Consumer SDK ตามที่อธิบายไว้ในส่วนก่อนหน้า
หากต้องการเริ่มต้น Consumer SDK ให้ทำตามขั้นตอนต่อไปนี้
รับอินสแตนซ์ ConsumerApi
หากต้องการใช้ Consumer SDK แอปของคุณต้องเริ่มต้น ConsumerApi แบบ Singleton แบบไม่พร้อมกัน เมธอดการเริ่มต้นใช้งานจะใช้คลาส 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 และตัวแสดงผลแผนที่
Consumer SDK เวอร์ชัน 2.0.0 ขึ้นไปรองรับ Maps SDK สำหรับ Android เวอร์ชัน 18.1.0 ขึ้นไป ตารางต่อไปนี้สรุปตัวแสดงผลเริ่มต้นตามเวอร์ชัน Maps SDK และความสามารถในการรองรับตัวแสดงผลทั้ง 2 แบบ หากเป็นไปได้ ให้ใช้ตัวแสดงผลล่าสุด
หากต้องใช้ตัวแสดงผลเวอร์ชันเก่า ให้ระบุอย่างชัดเจนโดยใช้
MapsInitializer.initialize()
| เวอร์ชัน Maps SDK | รองรับตัวแสดงผลล่าสุด | รองรับตัวแสดงผลเวอร์ชันเก่า | ตัวแสดงผลเริ่มต้น |
|---|---|---|---|
| V18.1.0 และต่ำกว่า | ใช่ | ใช่ | เวอร์ชันเก่า* |
| V18.2.0 | ใช่ | ใช่ | ล่าสุด |
* เมื่อเปิดตัว Maps Renderer ใหม่ ตัวแสดงผลล่าสุดจะเป็น ค่าเริ่มต้น
หากต้องใช้ตัวแสดงผลที่ต้องการ ให้เรียกใช้การดำเนินการแสดงผล UI ทั้งหมดหลังจาก OnMapsSdkInitializedCallback แสดงผลลัพธ์ การดำเนินการแสดงผล UI ได้แก่ การดำเนินการต่อไปนี้
การขยายมุมมองที่มี
GoogleMapViewหรือConsumerMapViewการวางมาร์กเกอร์บน
ConsumerMapView
หากคุณไม่เรียกใช้การดำเนินการเหล่านี้หลังจากได้รับผลลัพธ์ OnMapsSdkInitializedCallback Maps SDK จะไม่จัดสรรตัวแสดงผลที่ต้องการ และระบบจะแสดงผลมุมมองแผนที่ด้วยตัวแสดงผลเริ่มต้นแทน
เริ่มต้น Maps SDK ก่อนเริ่มต้น Consumer SDK
เรียกใช้ MapsInitializer.initialize() ในคลาส
ApplicationหรือActivityเริ่มต้นรอผลลัพธ์คำขอตัวแสดงผลก่อนที่จะเริ่มต้น 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 ด้วย