دليل نقل بيانات Android Driver SDK 4.0

يتطلّب إصدار 4.0 من Driver SDK لنظام Android تعديل الرمز البرمجي لبعض العمليات. يُحدّد هذا الدليل التغييرات والإجراءات التي يجب اتّخاذها لنقل الرمز البرمجي.

تغيير اسم الحزمة

تم تغيير اسم الحزمة من com.google.android.libraries.ridesharing.driver إلى com.google.android.libraries.mapsplatform.transportation.driver. يُرجى تعديل المراجع في الرمز البرمجي.

إعداد حزمة تطوير البرامج (SDK)

في الإصدارات السابقة، كان يتم إعداد Navigation SDK ثم الحصول على مرجع لفئة FleetEngine. في الإصدار 4 من Driver SDK، يتم إعداد حزمة تطوير البرامج (SDK) على النحو التالي:

  1. الحصول على عنصر Navigator من NavigationApi

    NavigationApi.getNavigator(
        this, // Activity
        new NavigationApi.NavigatorListener() {
          @Override
          public void onNavigatorReady(Navigator navigator) {
            // Keep a reference to the Navigator (used to configure and start nav)
            this.navigator = navigator;
          }
        }
    );
    
  2. إنشاء عنصر DriverContext وملء الحقول المطلوبة

    DriverContext driverContext = DriverContext.builder(application)
        .setProviderId(providerId)
        .setVehicleId(vehicleId)
        .setAuthTokenFactory(authTokenFactory)
        .setNavigator(navigator)
        .setRoadSnappedLocationProvider(
            NavigationApi.getRoadSnappedLocationProvider(application))
        .build();
    
  3. استخدام عنصر DriverContext لإعداد *DriverApi

  4. الحصول على NavigationVehicleReporter من عنصر واجهة برمجة التطبيقات *VehicleReporter توسّع نطاق NavigationVehicleReporter.

تفعيل تحديثات الموقع الجغرافي وإيقافها

في الإصدارات السابقة، كان يتم تفعيل تحديثات الموقع الجغرافي بعد الحصول على مرجع FleetEngine. في الإصدار 4 من Driver SDK، يتم تفعيل تحديثات الموقع الجغرافي على النحو التالي:

عند انتهاء وردية السائق، يتم إيقاف تحديثات الموقع الجغرافي ووضع علامة على السيارة بأنّها غير متصلة بالإنترنت من خلال استدعاء NavigationVehicleReporter.disableLocationTracking().

الإبلاغ عن الأخطاء باستخدام StatusListener

تمت إزالة ErrorListener ودمجها مع StatusListener، التي يمكن تحديدها على النحو التالي:

class MyStatusListener implements StatusListener {
  /** Called when background status is updated, during actions such as location reporting. */
  @Override
  public void updateStatus(
      StatusLevel statusLevel, StatusCode statusCode, String statusMsg) {
    // Status handling stuff goes here.
    // StatusLevel may be DEBUG, INFO, WARNING, or ERROR.
    // StatusCode may be DEFAULT, UNKNOWN_ERROR, VEHICLE_NOT_FOUND,
    // BACKEND_CONNECTIVITY_ERROR, or PERMISSION_DENIED.
  }
}