تجهيز المركبة

يوضّح هذا القسم كيفية تجهيز المركبة للمهام المُجدوَلة. يجب إكمال كل خطوة من الخطوات التالية قبل أن تتمكّن الواجهة الخلفية من مطابقة مركبة بمهمة.

إعداد المستمع

بما أنّ حزمة تطوير البرامج (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، فعِّل الإشعارات بشأن الموقع الجغرافي على النحو التالي:

جافا

DeliveryVehicleReporter reporter = ...;

reporter.enableLocationTracking();

Kotlin

val reporter = ...

reporter.enableLocationTracking()

(اختياري) ضبط الفاصل الزمني للتحديث

ترسل حزمة تطوير البرامج (SDK) الخاصة بالسائق تلقائيًا إشعارات بشأن الموقع الجغرافي كل 10 ثوانٍ. ويشير كل إشعار بشأن الموقع الجغرافي أيضًا إلى أنّ المركبة متصلة بالإنترنت. يمكنك تغيير هذه الفترة الزمنية باستخدام reporter.setLocationReportingInterval(long, TimeUnit). الحد الأدنى المسموح به للفاصل الزمني للتحديث هو 5 ثوانٍ. قد يؤدي إجراء تعديلات أكثر تكرارًا إلى بطء الطلبات والأخطاء.