إعداد حزمة تطوير البرامج (SDK) الخاصة بالمستهلك
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
قبل بدء هذه الإجراءات، تأكَّد من تفعيل الخدمات المناسبة وConsumer SDK كما هو موضّح في الأقسام السابقة.
لإعداد Consumer SDK، اتّبِع الخطوات التالية:
- الحصول على
ConsumerAPI
مثيل
- إعداد "حزمة تطوير البرامج بالاستناد إلى بيانات خرائط Google" لطلب أداة العرض المفضّلة
الحصول على مثيل 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
}
حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" وبرامج عرض الخرائط
يتوافق الإصدار 2.0.0 والإصدارات الأحدث من حزمة تطوير البرامج (SDK) الخاصة بالمستهلكين مع الإصدار 18.1.0 والإصدارات الأحدث من حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لتطبيقات Android. يلخّص الجدول التالي أداة العرض التلقائية حسب إصدار حزمة تطوير البرامج (SDK) لخرائط Google
ومدى توافق أداتَي العرض. استخدِم أحدث أداة عرض إن أمكن.
إذا كان عليك استخدام أداة العرض القديمة، حدِّدها بشكل صريح باستخدام
MapsInitializer.initialize()
.
إصدار حزمة تطوير البرامج (SDK) الخاصة بـ "خرائط Google" |
متوافق مع أحدث أداة عرض |
إتاحة استخدام أداة العرض القديمة |
برنامج العرض التلقائي |
الإصدار 18.1.0 والإصدارات الأقدم |
نعم |
نعم |
قديمة* |
V18.2.0 |
نعم |
نعم |
الأحدث |
* مع طرح أداة العرض الجديدة في "خرائط Google"، ستصبح أداة العرض الأحدث هي الإعداد التلقائي.
إذا كان عليك استخدام أداة عرض مفضّلة، شغِّل جميع عمليات عرض واجهة المستخدم
بعد أن تعرض OnMapsSdkInitializedCallback
نتيجة. تشمل عمليات عرض واجهة المستخدم العمليات التالية:
إذا لم تنفِّذ هذه العمليات بعد تلقّي النتيجة OnMapsSdkInitializedCallback
، لن تخصّص حزمة تطوير البرامج (SDK) أداة العرض المفضّلة لديك، وسيتم بدلاً من ذلك عرض خريطة باستخدام أداة العرض التلقائية.
إعداد حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" قبل إعداد حزمة تطوير البرامج الخاصة بالمستهلك
في صف 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()
}
})
}
ملاحظات حول طبقة المقابس الآمنة/طبقة النقل الآمنة
داخليًا، يستخدم تنفيذ حزمة تطوير البرامج (SDK) الخاصة بالمستهلكين بروتوكول SSL/TLS للتواصل بأمان مع خدمة Fleet Engine. قد تتطلّب إصدارات واجهة برمجة التطبيقات Android 23 أو الإصدارات الأقدم
تطبيق تصحيح SecurityProvider
للتواصل مع الخادم. لمزيد من المعلومات حول استخدام طبقة المقابس الآمنة (SSL) في Android، يُرجى الاطّلاع على موفّر أمان GMS.
تحتوي المقالة أيضًا على عيّنات من الرموز البرمجية لتصحيح موفّر الأمان.
الخطوات التالية
إعداد خريطة
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2025-08-31 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-08-31 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003eThe Consumer SDK requires initialization with a provider ID and authentication token factory before use.\u003c/p\u003e\n"],["\u003cp\u003eMaps SDK v18.1.0 or later is required, with the latest renderer preferred for optimal performance.\u003c/p\u003e\n"],["\u003cp\u003eBefore initializing the Consumer SDK, initialize Maps SDK and specify your preferred renderer to ensure proper map rendering.\u003c/p\u003e\n"],["\u003cp\u003eSecure communication is handled via SSL/TLS, and Android API versions 23 or earlier may require a security provider patch.\u003c/p\u003e\n"]]],["Before initialization, ensure the required services and Consumer SDK are enabled. To initialize the Consumer SDK, first, get the `ConsumerApi` instance using `ConsumerApi.initialize()`, providing the application context, project ID, and an `AuthTokenFactory` for JWT token generation. Next, initialize the Maps SDK via `MapsInitializer.initialize()` to specify the preferred renderer (latest or legacy) and wait for `OnMapsSdkInitializedCallback` before any UI rendering like `GoogleMapView`. Note that the Consumer SDK uses SSL/TLS for secure communication.\n"],null,["Before starting these procedures, make sure you have enabled the appropriate\nservices and the Consumer SDK as described in earlier sections.\n\nTo initialize the Consumer SDK, follow these steps:\n\n1. [Get the `ConsumerAPI` instance](#getinstance)\n2. [Initialize Maps SDK to request for preferred renderer](#init-maps)\n\nGet the `ConsumerApi` instance\n\nTo use the Consumer SDK, your app needs to initialize the singleton\n`ConsumerApi` asynchronously. The initialization method takes the\n`AuthTokenFactory` class to generate new JWT tokens for the user when necessary.\n\nThe `providerId` is the **Project ID** of your Google Cloud Project. For more\ninformation about creating a Fleet Engine project, see\n[Create your Fleet Engine project](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/create-project) in the Fleet Engine guide.\n\nYour app should implement the `AuthTokenFactory` as described in [Consumer SDK\nAuthentication](/maps/documentation/mobility/journey-sharing/on-demand/android/auth-sdk). \n\nJava \n\n Task\u003cConsumerApi\u003e consumerApiTask = ConsumerApi.initialize(\n this, \"myProviderId\", authTokenFactory);\n\n consumerApiTask.addOnSuccessListener(\n consumerApi -\u003e this.consumerApi = consumerApi);\n\nKotlin \n\n val consumerApiTask =\n ConsumerApi.initialize(this, \"myProviderId\", authTokenFactory)\n\n consumerApiTask?.addOnSuccessListener { consumerApi: ConsumerApi -\u003e\n this@YourActivity.consumerApi = consumerApi\n }\n\nMaps SDK and maps renderers\n\nThe Consumer SDK v2.0.0 and later support the Maps SDK for Android v18.1.0 and\nlater. The following table summarizes the default renderer by Maps SDK version\nand the supportability of both renderers. If possible, use the latest renderer.\nIf you must use the legacy renderer, explicitly specify it using\n[`MapsInitializer.initialize()`](https://developers.google.com/android/reference/com/google/android/gms/maps/MapsInitializer).\n\n| Maps SDK version | Supports the latest renderer | Supports the legacy renderer | Default renderer |\n|-------------------|------------------------------|------------------------------|------------------|\n| V18.1.0 and below | Yes | Yes | Legacy\\* |\n| V18.2.0 | Yes | Yes | Latest |\n\n\\* With the rollout of [new Maps Renderer](https://developers.google.com/maps/documentation/android-sdk/renderer#rollout_schedule), the Latest renderer will be the\ndefault.\n\nIf you must use a preferred renderer, run all UI-rendering operations\n**after** `OnMapsSdkInitializedCallback` returns a result. UI-rendering\noperations include the following operations:\n\n- Inflating a view that contains `GoogleMapView` or `ConsumerMapView`.\n\n- Placing markers on `ConsumerMapView`.\n\nIf you don't run these operations after receiving the\n`OnMapsSdkInitializedCallback` result, the Maps SDK doesn't allocate your\npreferred renderer and the map view is instead rendered by the default renderer.\n\nInitialize Maps SDK before initializing the Consumer SDK\n\n1. In your `Application` or start-up `Activity` class, call\n [MapsInitializer.initialize()](https://developers.google.com/maps/documentation/android-sdk/renderer)\n\n2. Wait for the renderer request result before initializing the Consumer SDK.\n\nSee the following examples for details. \n\nJava \n\n @Override\n protected void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState);\n setContentView(R.layout.main);\n initViews();\n\n MapsInitializer.initialize(getApplicationContext(), Renderer.LATEST,\n new OnMapsSdkInitializedCallback() {\n @Override\n public void onMapsSdkInitialized(Renderer renderer) {\n switch (renderer) {\n case LATEST:\n Log.i(\"maps_renderer\", \"LATEST renderer\");\n break;\n case LEGACY:\n Log.i(\"maps_renderer\", \"LEGACY renderer\");\n break;\n }\n\n initializeConsumerSdk();\n }\n });\n }\n\nKotlin \n\n fun onCreate(savedInstanceState: Bundle?) {\n super.onCreate(savedInstanceState)\n setContentView(R.layout.main)\n initViews()\n\n MapsInitializer.initialize(\n getApplicationContext(), Renderer.LATEST,\n object : OnMapsSdkInitializedCallback() {\n fun onMapsSdkInitialized(renderer: Renderer?) {\n when (renderer) {\n LATEST -\u003e Log.i(\"maps_renderer\", \"LATEST renderer\")\n LEGACY -\u003e Log.i(\"maps_renderer\", \"LEGACY renderer\")\n }\n initializeConsumerSdk()\n }\n })\n }\n\nNotes on SSL/TLS\n\nInternally, the Consumer SDK implementation uses SSL/TLS to communicate securely\nwith the Fleet Engine service. Android API versions 23 or earlier may require a\n`SecurityProvider` patch to communicate with the server. For more information\nabout working with SSL in Android, see [Security GMS\nProvider](https://developer.android.com/training/articles/security-gms-provider).\nThe article also contains code samples for patching the security provider.\n\nWhat's next\n\n[Set up a map](/maps/documentation/mobility/journey-sharing/on-demand/android/create-ui)"]]