ضبط تنبيهات عدّاد السرعة

عند تفعيل التنقّل، تعرض حزمة Navigation SDK لنظام التشغيل Android عنصر تحكّم في حد السرعة في أسفل يسار الخريطة يعرض حد السرعة الحالي. إذا تجاوز المستخدم حدّ السرعة، يتوسّع عنصر التحكّم لعرض عدّاد السرعة بجانب شاشة عرض حدّ السرعة، ويتم تشغيل التنبيهات عندما تصل السرعة إلى حدّ معيّن.

تُطلق حزمة تطوير البرامج (SDK) الخاصة بخدمة Navigation تنبيهًا بسيطًا بشأن السرعة تلقائيًا عندما يتجاوز المستخدم حد السرعة بمقدار 5 ميل في الساعة (أو 10 كيلومتر في الساعة)، وتغيّر لون نص عدّاد السرعة إلى الأحمر. ويتم تشغيل تنبيه بشأن السرعة عندما يتجاوز المستخدم حد السرعة بمقدار 10 ميل في الساعة (أو 20 كيلومترًا في الساعة)، ويتغير لون خلفية عدّاد السرعة إلى الأحمر.

يمكنك تخصيص كلّ من الحدّ الأدنى لتفعيل التنبيهات ولونَي النص والخلفية اللذين يعرضهما عدّاد السرعة. يمكنك أيضًا استخدام Navigation SDK لإتاحة معلومات سرعة المستخدم وفقًا للحدود التي حدّدتها. على سبيل المثال، يمكنك إتاحة معلومات السرعة لمشغّلي خدمات مشاركة الرحلات لمساعدتهم في تشجيع المستخدمين على الالتزام بالحد الأقصى للسرعة وتحسين السلامة.

تخصيص الحدود الدنيا لتنبيهات السرعة

يمكنك تخصيص الحد الأدنى لتنبيهات السرعة الصغرى والكبرى كنسبة مئوية تتجاوز الحد الأقصى للسرعة الحالية. يمكنك أيضًا تحديد المدة التي يجب أن تتجاوز فيها القيمة الحدّ المسموح به قبل أن تعرض الخريطة التنبيه.

يوضّح مثال الرمز التالي كيفية ضبط الحدّ الأدنى لتنبيه السرعة الطفيف على 5% فوق السرعة القصوى، والحدّ الأدنى لتنبيه السرعة الكبير على 10% فوق السرعة القصوى. ويحدّد أن تعرض الخريطة تنبيهًا بعد تجاوز حد التنبيه لمدة خمس ثوانٍ.


 float minorSpeedAlertThresholdPercentage = 5; float
majorSpeedAlertThresholdPercentage = 10; double severityUpgradeDurationSeconds =
5;

 // Configure SpeedAlertOptions SpeedAlertOptions.Builder
speedAlertOptionsBuilder = new SpeedAlertOptions.Builder();
speedAlertOptionsBuilder.setSpeedAlertThresholdPercentage(
SpeedAlertSeverity.MINOR, minorSpeedAlertThresholdPercentage);
speedAlertOptionsBuilder.setSpeedAlertThresholdPercentage(
SpeedAlertSeverity.MAJOR, majorSpeedAlertThresholdPercentage);
speedAlertOptionsBuilder.setSeverityUpgradeDurationSeconds(severityUpgradeDurationSeconds);

 // Set SpeedAlertOptions to Navigator.
navigator.setSpeedAlertOptions(speedAlertOptionsBuilder.build());

تخصيص طريقة عرض تنبيهات السرعة على عدّاد السرعة

لجعل تنبيهات السرعة أكثر جاذبية، يمكنك تخصيص ألوان عرض عدّاد السرعة لكل مستوى تنبيه.

يعرض الجدول التالي الألوان التلقائية لتنبيهات السرعة في الفئة NavigationView:

العنصراللون
MinorSpeedAlertBackgroundColorDayMode 0xffffff(أبيض)
MinorSpeedAlertBackgroundColorNightMode 0x000000
MinorSpeedAlertTextColorDayMode 0xd93025
MinorSpeedAlertTextColorNightMode 0xd93025
MajorSpeedAlertBackgroundColorDayMode 0xd93025
MajorSpeedAlertBackgroundColorNightMode 0xd93025
MajorSpeedAlertTextColorDayMode 0xffffff(أبيض)
MajorSpeedAlertTextColorNightMode 0xffffff(أبيض)

يمكنك تحديد لون النص ولون الخلفية لمقياس السرعة لكل من تنبيهات السرعة البسيطة والكبيرة:

 SpeedometerUiOptions speedometerUiOptions = new SpeedometerUiOptions.Builder()
 .setBackgroundColorDayMode(MINOR, some_color)
.setBackgroundColorNightMode(MINOR, some_color) .setTextColorDayMode(MINOR,
some_color) .setTextColorNightMode(MINOR, some_color)
.setBackgroundColorDayMode(MAJOR, some_color)
.setBackgroundColorNightMode(MAJOR, some_color) .setTextColorDayMode(MAJOR,
some_color) .setTextColorNightMode(MAJOR, some_color) .build();

 // Set SpeedometerUiOptions to NavigationView.
navigationView.setSpeedometerUiOptions(speedometerUiOptionsBuilder.build());
navigationView.setSpeedometerEnabled(true);

 // Set SpeedometerUiOptions to SupportNavigationFragment.
supportNavigationFragment.setSpeedometerUiOptions(speedometerUiOptionsBuilder.build());
 supportNavigationFragment.setSpeedometerEnabled(true);

تلقّي معلومات السرعة من المستخدمين

إذا كان تطبيقك يتطلّب مشاركة معلومات حول سرعة المستخدم، يمكنك أيضًا استخدام Navigation SDK لإتاحة معلومات سرعة المستخدم. على سبيل المثال، يمكن أن يكون ذلك مفيدًا لتطبيقات مشاركة الرحلات التي قد يريد فيها المشغّل مراقبة السرعة المفرطة التي يقود بها المستخدمون لتحسين السلامة. يمكن أيضًا إجراء ذلك بدون الحاجة إلى عرض طريقة عرض للتنقّل للمستخدم في تطبيقك.

على سبيل المثال، يشارك المثال التالي معلومات السرعة عندما تكون السرعة أعلى بنسبة مئوية محددة من السرعة القصوى:

 // Existing flow for creating Navigator. NavigationApi.getNavigator();

 // Set the SpeedAlertOptions for the MAJOR and MINOR alerts. (Note that the //
severityUpgradeDurationSeconds field is by design not used in this flow.)
SpeedAlertOptions speedAlertOptions = ...;
navigator.setSpeedAlertOptions(speedAlertOptions);

 // Implement SpeedingListener. SpeedingListener speedingListener = new
SpeedingListener() { @Override public void onSpeedingUpdated(float
percentageAboveLimit, SpeedAlertSeverity speedAlertSeverity) { ... } };

 // Set speedingListener to Navigator.
navigator.setSpeedingListener(speedingListener);