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