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

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

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

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

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

في الإصدارات السابقة، كان عليك إعداد Navigation SDK ثم الحصول على مرجع إلى الفئة FleetEngine. في الإصدار 3 من 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. في الإصدار 3 من Driver SDK، فعِّل عمليات تعديل الموقع الجغرافي على النحو التالي:

لتعديل الفترة الزمنية لإعداد التقارير، استخدِم RidesharingVehicleReporter.setLocationReportingInterval(long, TimeUnit) أو DeliveryVehicleReporter.setLocationReportingInterval(long, TimeUnit).

عند انتهاء نوبة عمل السائق، أوقِف إشعارات الموقع الجغرافي وصنِّف المركبة على أنّها غير متصلة بالإنترنت من خلال طلب 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.
  }
}