يوضّح هذا القسم كيفية تجهيز المركبة للمهام المُجدوَلة. يجب إكمال كلّ خطوة من الخطوات التالية لكي تتمكّن واجهة الخلفية من مطابقة مركبة مع مهمة.
إعداد المستمع
بما أنّ حزمة Driver 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 ثوانٍ. قد تؤدي التحديثات المتكرّرة إلى تأخّر الطلبات وظهور أخطاء.