يوضّح هذا القسم كيفية تجهيز المركبة للرحلات. عليك إكمال كل خطوة من الخطوات التالية قبل أن تتمكّن من مطابقة مركبة مع رحلة في نظامك الخلفي.
إعداد أداة الاستماع
بما أنّ حزمة تطوير البرامج (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());
تفعيل إشعارات التحديث بشأن الموقع الجغرافي
بعد إعداد أداة الاستماع، فعِّل إشعارات التحديث بشأن الموقع الجغرافي على النحو التالي:
جافا
RidesharingVehicleReporter reporter = ...;
reporter.enableLocationTracking();
Kotlin
val reporter = ...
reporter.enableLocationTracking()
ضبط الفاصل الزمني لإشعارات التحديث
تُرسِل حزمة تطوير البرامج (SDK) للسائق تلقائيًا إشعارات التحديث بشأن الموقع الجغرافي على فترات زمنية مدتها 10 ثوانٍ عندما تكون حالة المركبة ONLINE. يمكنك تغيير هذا الفاصل الزمني باستخدام reporter.setLocationReportingInterval(long, TimeUnit). الحد الأدنى للفاصل الزمني لإشعارات التحديث المتاح هو 5 ثوانٍ. قد تؤدي إشعارات التحديث الأكثر تكرارًا إلى إبطاء الطلبات وحدوث أخطاء.
ضبط حالة المركبة على "متوفّرة"
عند تفعيل إشعارات التحديث بشأن الموقع الجغرافي، يمكنك ضبط حالة المركبة على ONLINE لإتاحة المركبة لطلبات SearchVehicles في Fleet Engine. تُرسِل حزمة تطوير البرامج (SDK) للسائق حالة المركبة المعدَّلة مع إشعارات التحديث بشأن الموقع الجغرافي.
يمكنك ضبط حالة المركبة مباشرةً في حزمة تطوير البرامج (SDK) للسائق أو في خادم Fleet Engine. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة تعديل مركبة.
توضّح الأمثلة التالية كيفية ضبط حالة المركبة على "متوفّرة" في حزمة تطوير البرامج (SDK) للسائق:
جافا
RidesharingVehicleReporter reporter = ...;
reporter.enableLocationTracking();
reporter.setVehicleState(VehicleState.ONLINE);
Kotlin
val reporter = ...
reporter.enableLocationTracking()
reporter.setVehicleState(VehicleState.ONLINE)
تعرض StatusListener أيضًا أي أخطاء تحدث أثناء تعديل حالة المركبة.