הפעלת ה-SDK לצרכנים

לפני שמתחילים בתהליכים האלה, חשוב לוודא שהפעלתם את השירותים המתאימים ואת Consumer SDK, כמו שמתואר בקטעים הקודמים.

כדי לאתחל את Consumer SDK, פועלים לפי השלבים הבאים:

  1. קבלת מופע ConsumerAPI
  2. אתחול של Maps 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

  1. בכיתה Application או בכיתת ההפעלה Activity, קוראים ל-MapsInitializer.initialize()

  2. צריך להמתין לתוצאה של בקשת הרינדור לפני שמפעילים את 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. במאמר יש גם דוגמאות קוד לתיקון ספק האבטחה.

המאמרים הבאים

הגדרת מפה