نسخه Driver SDK برای Android 3.0 نیاز دارد که کد خود را برای عملیات خاصی به روز کنید. این راهنما تغییرات و کارهایی را که برای انتقال کد خود باید انجام دهید، تشریح می کند.
تغییر نام بسته
نام بسته از com.google.android.libraries.ridesharing.driver
به com.google.android.libraries.mapsplatform.transportation.driver
تغییر کرده است. لطفا مراجع را در کد خود به روز کنید.
راه اندازی SDK
در نسخههای قبلی، Navigation SDK را راهاندازی میکردید و سپس یک مرجع به کلاس FleetEngine
دریافت میکردید. در Driver SDK v3، SDK را به صورت زیر مقداردهی کنید:
یک شی
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; } } );
یک شی
DriverContext
ایجاد کنید و فیلدهای مورد نیاز را پر کنید.DriverContext driverContext = DriverContext.builder(application) .setProviderId(providerId) .setVehicleId(vehicleId) .setAuthTokenFactory(authTokenFactory) .setNavigator(navigator) .setRoadSnappedLocationProvider( NavigationApi.getRoadSnappedLocationProvider(application)) .build()
از شی
DriverContext
برای مقداردهی اولیه*DriverApi
استفاده کنید.NavigationVehicleReporter
از شی API دریافت کنید.*VehicleReporter
NavigationVehicleReporter
را گسترش می دهد.
فعال و غیرفعال کردن بهروزرسانیهای مکان
در نسخه های قبلی، پس از به دست آوردن مرجع FleetEngine
، به روز رسانی مکان را فعال می کنید. در Driver SDK v3، به روز رسانی مکان را به صورت زیر فعال کنید:
برای به روز رسانی فاصله گزارش، از 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.
}
}