يوضّح هذا القسم كيفية تجهيز المركبة للمهام المُجدوَلة. يجب إكمال كل خطوة من الخطوات التالية قبل أن تتمكّن الخلفية من مطابقة مركبة بمهمة.
إعداد المستمع
بما أنّ حزمة تطوير البرامج (SDK) الخاصة بالسائقين تنفّذ الإجراءات في الخلفية، استخدِم DriverStatusListener
لتفعيل الإشعارات عند وقوع أحداث معيّنة، مثل الأخطاء أو التحذيرات أو رسائل تصحيح الأخطاء. يمكن أن تكون الأخطاء مؤقتة (مثل BACKEND_CONNECTIVITY_ERROR
)، أو قد تؤدي إلى توقّف تعديلات الموقع الجغرافي نهائيًا. على سبيل المثال، إذا تلقّيت الخطأ VEHICLE_NOT_FOUND
، يشير ذلك إلى حدوث خطأ في الإعداد.
يوضّح المثال التالي عملية تنفيذ DriverStatusListener
:
class MyStatusListener implements DriverStatusListener {
/** Called when background status is updated, during actions such as location reporting. */
@Override
public void updateStatus(
StatusLevel statusLevel, StatusCode statusCode, String statusMsg, @Nullable Throwable cause) {
// Existing implementation
if (cause != null && cause instanceof StatusRuntimeException) {
if (Status.NOT_FOUND.getCode().equals(cause.getStatus().getCode())) {
// NOT_FOUND gRPC exception thrown by Fleet Engine.
}
}
}
}
DriverContextBuilder.setDriverStatusListener(new MyStatusListener());
تفعيل تحديثات الموقع الجغرافي
بعد الحصول على مثيل *VehicleReporter
، فعِّل إشعارات الموقع الجغرافي باتّباع الخطوات التالية:
Java
DeliveryVehicleReporter reporter = ...;
reporter.enableLocationTracking();
Kotlin
val reporter = ...
reporter.enableLocationTracking()
(اختياري) ضبط الفاصل الزمني للتحديث
تُرسِل حزمة Driver SDK تلقائيًا معلومات الموقع الجغرافي كل 10 ثوانٍ. يشير كل تعديل على الموقع الجغرافي أيضًا إلى أنّ المركبة متصلة بالإنترنت. يمكنك تغيير هذا الفاصل الزمني من خلال reporter.setLocationReportingInterval(long, TimeUnit)
. الحد الأدنى لفترة التعديل المتاحة هو 5 ثوانٍ. قد تؤدي التحديثات المتكررة إلى بطء الطلبات وحدوث أخطاء.