ก่อนเริ่มขั้นตอนเหล่านี้ โปรดตรวจสอบว่าคุณได้เปิดใช้บริการที่เหมาะสมและ Consumer SDK ตามที่อธิบายไว้ในส่วนก่อนหน้า
หากต้องการเริ่มต้น Consumer SDK ให้ทำตามขั้นตอนต่อไปนี้
รับอินสแตนซ์ 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
ในคลาส
ApplicationหรือActivityเริ่มต้น ให้เรียกใช้ MapsInitializer.initialize()รอผลลัพธ์คำขอ 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 ด้วย