عند تفعيل ميزة التنقّل، يعرض Navigation SDK لنظام التشغيل Android عنصر تحكّم في حدّ السرعة في أسفل يسار الخريطة يعرض حدّ السرعة الحالي. إذا تجاوز المستخدم حدّ السرعة، يتم توسيع عنصر التحكّم لعرض عدّاد السرعة بجانب عرض حدّ السرعة، ويتم إطلاق تنبيهات عندما تصل السرعة إلى حدّ معيّن.
تلقائيًا، يطلق Navigation SDK تنبيهًا بسيطًا بشأن السرعة عندما يتجاوز المستخدم حدّ السرعة بمقدار 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);