نسخه درایور SDK برای اندروید ۴.۰ مستلزم آن است که کد خود را برای برخی عملیات بهروزرسانی کنید. این راهنما تغییرات و آنچه را که برای انتقال کد خود باید انجام دهید، شرح میدهد.
تغییر نام بسته
نام بسته از com.google.android.libraries.ridesharing.driver به com.google.android.libraries.mapsplatform.transportation.driver تغییر کرده است. لطفاً ارجاعات موجود در کد خود را بهروزرسانی کنید.
مقداردهی اولیه SDK
در نسخههای قبلی، شما باید SDK ناوبری را مقداردهی اولیه میکردید و سپس به کلاس FleetEngine ارجاع میدادید. در Driver SDK نسخه ۴، 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 نسخه ۴، بهروزرسانیهای موقعیت مکانی را به صورت زیر فعال کنید:
وقتی شیفت راننده تمام شد، بهروزرسانیهای موقعیت مکانی را غیرفعال کنید و با فراخوانی 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.
}
}