عارض خرائط جديد

يتوفّر عارض خرائط تمت ترقيته اعتبارًا من الإصدار 18.2.0 من حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لنظام التشغيل Android. ويوفّر العارض هذا العديد من التحسينات، بما فيها التوافق مع تصميم الخرائط المستند إلى السحابة الإلكترونية.

ويوفر العارض الجديد المزايا التالية:

الجدول الزمني للطرح

في آذار (مارس) 2024، بدأت Google في تحديث جميع التطبيقات المنشورة تلقائيًا على أحد الأجهزة لاستخدام العارض الذي تمت ترقيته. سيتم إجراء التحديثات التلقائية بشكل متزايد خلال الأشهر القادمة استنادًا إلى الجهاز، أي أنّه سيتم تحديث أجهزة المستخدم في أوقات مختلفة خلال فترة التحديث.

تنطبق التحديثات التلقائية على جميع التطبيقات التي تعمل على الأجهزة التي تستوفي الحدّ الأدنى من متطلبات الجهاز، بغض النظر عن إصدار حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لنظام التشغيل Android الذي يستخدمه التطبيق.

لا تنطبق التحديثات التلقائية على:

ماذا يحدث عندما يتم تغيير العارض التلقائي؟

أصبح العارض التلقائي هو العارض الذي تمّت ترقيته مع طرح الإصدار 18.2.0 من حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لنظام التشغيل Android. وللاستفادة من العارض الذي تمت ترقيته، يمكنك إنشاء تطبيقاتك الجديدة أو إعادة إنشاء أي تطبيقات حالية باستخدام الإصدار الجديد من حزمة تطوير البرامج (SDK). يمكنك بدلاً من ذلك الانتظار إلى أن تحدِّث Google تطبيقك المنشور تلقائيًا.

بعد التحديث، يمكن لتطبيقك الاستفادة من جميع الميزات والمزايا الجديدة المتوفرة في العارض الذي تمت ترقيته.

مع ذلك، إذا قررت إيقاف التغيير، سيواصل تطبيقك استخدام العارض القديم. راجِع إيقاف استخدام العارض الذي تمت ترقيته للحصول على مثال عن الرمز البرمجي حول كيفية الإيقاف.

الأجهزة المتوافقة

ينطبق التحديث التلقائي على جميع الأجهزة التي تستوفي هذه المعايير، بغض النظر عن إصدار حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لنظام التشغيل Android الذي يستخدمه التطبيق:

  • Android 5.0 (المستوى 21 من واجهة برمجة التطبيقات) أو إصدار أحدث
  • تستخدم الإصدار 21.39.14 أو إصدار أحدث من "خدمات Google Play"

أمّا الأجهزة التي تستخدم الإصدار 4.4W (المستوى 20 من واجهة برمجة التطبيقات) والإصدارات الأقدم أو التي تستخدم الإصدار 21.39.13 من "خدمات Google Play" أو الإصدارات الأقدم، فتستمر في استخدام العارض القديم.

إيقاف استخدام العارض الذي تمت ترقيته

وإذا لزم الأمر، يمكنك بشكل صريح إيقاف استخدام العارض الذي تمت ترقيته لاستخدام العارض القديم في تطبيقك.

لإيقاف الميزة:

  • ترقية حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لتطبيقات Android إلى الإصدار 18.0 أو إصدار أحدث.

  • يُرجى تعديل الرمز البرمجي لاستيراد MapsInitializer وMapsInitializer.Renderer بشكل صريح.

  • عدِّل الرمز الخاص بك لطلب الرمز MapsInitializer.initialize()، وسيتم ضبط الإعدادات في Renderer.LEGACY على خيار الإيقاف واستخدام العارض القديم.

  • استخدِم OnMapsSdkInitializedCallback لتحديد إصدار العارض الذي تم عرضه.

يجب أن يستدعي الرمز MapsInitializer.initialize() قبل إنشاء أيّ من MapView أو MapFragment أو SupportMapFragment. ننصحك باستدعاء هذا الحدث في onCreate ضمن قسم التطبيق أو النشاط في تطبيقك، قبل ضبط عرض المحتوى.

يوضح المثال التالي كيفية طلب إيقاف استخدام عارض الخرائط القديم في MapsInitializer.initialize().

Kotlin

import com.google.android.gms.maps.MapsInitializer
import com.google.android.gms.maps.MapsInitializer.Renderer
import com.google.android.gms.maps.OnMapsSdkInitializedCallback

internal class MapRendererOptInApplication : Application(), OnMapsSdkInitializedCallback {
  override fun onCreate() {
    super.onCreate()
    MapsInitializer.initialize(applicationContext, Renderer.LEGACY, this)
  }

  override fun onMapsSdkInitialized(renderer: MapsInitializer.Renderer) {
    when (renderer) {
      Renderer.LATEST -> Log.d("MapsDemo", "The latest version of the renderer is used.")
      Renderer.LEGACY -> Log.d("MapsDemo", "The legacy version of the renderer is used.")
    }
  }
}

Java

import com.google.android.gms.maps.MapsInitializer;
import com.google.android.gms.maps.MapsInitializer.Renderer;
import com.google.android.gms.maps.OnMapsSdkInitializedCallback;

class MapRendererOptInApplication extends Application implements OnMapsSdkInitializedCallback {

  @Override
  public void onCreate() {
    super.onCreate();
    MapsInitializer.initialize(getApplicationContext(), Renderer.LEGACY, this);
  }

  @Override
  public void onMapsSdkInitialized(MapsInitializer.Renderer renderer) {
    switch (renderer) {
      case LATEST:
        Log.d("MapsDemo", "The latest version of the renderer is used.");
        break;
      case LEGACY:
        Log.d("MapsDemo", "The legacy version of the renderer is used.");
        break;
    }
  }
}