לפני שמתחילים בתהליכים האלה, חשוב לוודא שהפעלתם את השירותים המתאימים ואת 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 v2.0.0 ואילך תומכת ב-Maps SDK ל-Android בגרסה v18.1.0 ואילך. בטבלה הבאה מפורט סיכום של רכיב הרינדור שמוגדר כברירת מחדל לפי גרסת Maps SDK, ומידע על התמיכה בשני רכיבי הרינדור. אם אפשר, כדאי להשתמש ב-Renderer העדכני ביותר.
אם אתם חייבים להשתמש ב-renderer מדור קודם, אתם צריכים לציין אותו באופן מפורש באמצעות MapsInitializer.initialize()
.
גרסת Maps SDK | תמיכה במעבד התצוגה העדכני | תמיכה במעבד התצוגה מדור קודם | מעבד ברירת המחדל |
---|---|---|---|
גרסה V18.1.0 ומטה | כן | כן | דור קודם* |
V18.2.0 | כן | כן | הכי עדכני |
* עם השקת מעבד התצוגה החדש של מפות, מעבד התצוגה העדכני יהיה ברירת המחדל.
אם אתם חייבים להשתמש ב-renderer מועדף, צריך להריץ את כל פעולות העיבוד של ממשק המשתמש אחרי ש-OnMapsSdkInitializedCallback
מחזירה תוצאה. פעולות של עיבוד ממשק המשתמש כוללות את הפעולות הבאות:
ניפוח תצוגה שמכילה
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. יכול להיות שבגרסאות API של Android מגרסה 23 ומטה יידרש תיקון (patch) של SecurityProvider
כדי לתקשר עם השרת. למידע נוסף על עבודה עם SSL ב-Android, אפשר לעיין במאמר Security GMS Provider.
במאמר יש גם דוגמאות קוד לתיקון ספק האבטחה.