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