راهنمای انتقال درایور اندروید SDK 3.0

نسخه درایور SDK برای اندروید ۳.۰ مستلزم آن است که کد خود را برای برخی عملیات به‌روزرسانی کنید. این راهنما تغییرات و آنچه را که برای انتقال کد خود باید انجام دهید، شرح می‌دهد.

تغییر نام بسته

نام بسته از com.google.android.libraries.ridesharing.driver به com.google.android.libraries.mapsplatform.transportation.driver تغییر کرده است. لطفاً ارجاعات موجود در کد خود را به‌روزرسانی کنید.

مقداردهی اولیه SDK

در نسخه‌های قبلی، شما باید SDK مربوط به Navigation را مقداردهی اولیه می‌کردید و سپس یک ارجاع به کلاس FleetEngine دریافت می‌کردید. در 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 از شیء API دریافت کنید. *VehicleReporter از NavigationVehicleReporter ارث‌بری می‌کند.

فعال و غیرفعال کردن به‌روزرسانی‌های موقعیت مکانی

در نسخه‌های قبلی، به‌روزرسانی‌های موقعیت مکانی را پس از دریافت مرجع FleetEngine فعال می‌کردید. در 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.
  }
}