ก่อนที่จะเริ่มขั้นตอนเหล่านี้ ให้ตรวจสอบว่าได้เปิดใช้บริการที่เหมาะสมและ Consumer SDK ตามที่อธิบายไว้ในส่วนก่อนหน้านี้แล้ว
หากต้องการเริ่มต้น Consumer 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
ในคลาส
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 ด้านความปลอดภัย
บทความนี้ยังมีตัวอย่างโค้ดสำหรับแพตช์ผู้ให้บริการด้านความปลอดภัยด้วย