يتطلّب إصدار 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) على النحو التالي:
الحصول على عنصر
NavigatorمنNavigationApiNavigationApi.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من عنصر واجهة برمجة التطبيقات*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.
}
}