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