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