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