عند تفعيل ميزة التنقّل، تعرض حزمة تطوير البرامج (SDK) للتنقّل على أجهزة Android عنصر تحكّم في الحدّ الأقصى للسرعة في أسفل يمين الخريطة يعرض الحدّ الأقصى الحالي للسرعة. إذا تجاوز المستخدم الحد الأقصى للسرعة، يتوسّع عنصر التحكّم لعرض عدّاد السرعة بجانب الحد الأقصى للسرعة ويتم إرسال تنبيهات عندما تصل السرعة إلى حدّ معيّن.
بشكل تلقائي، تُرسِل حزمة تطوير البرامج (SDK) للتنقّل تنبيهًا بسيطًا بشأن السرعة عندما يتجاوز المستخدم الحدّ الأقصى للسرعة بمقدار 5 أميال في الساعة (أو 10 كيلومترات في الساعة)، وتغيّر لون نص عدّاد السرعة إلى الأحمر. يتم تفعيل تنبيه كبير بشأن السرعة عندما يتجاوز المستخدم الحد الأقصى للسرعة بمقدار 10 أميال في الساعة (أو 20 كيلومترًا في الساعة)، ويتغيّر لون خلفية عدّاد السرعة إلى الأحمر.
يمكنك تخصيص كل من الحد الأدنى لتفعيل التنبيهات والنص وألوان الخلفية التي يعرضها عداد السرعة. يمكنك أيضًا استخدام حزمة تطوير البرامج (SDK) للتنقّل لإتاحة معلومات سرعة المستخدم وفقًا للحدود القصوى التي حدّدتها. على سبيل المثال، يمكنك إتاحة معلومات السرعة لمشغّلي خدمات النقل التشاركي لمساعدتهم في تشجيع المستخدمين على الالتزام بالحد الأقصى للسرعة وتحسين مستوى الأمان.
تخصيص الحدود القصوى لتنبيهات السرعة
يمكنك تخصيص الحدّ الأدنى لتنبيهات السرعة لكل من تنبيهات السرعة البسيطة والكبيرة كنسبة مئوية من الحدّ الأقصى للسرعة الحالية. يمكنك أيضًا تحديد المدة التي يتم فيها تجاوز الحدّ قبل أن تعرض الخريطة التنبيه.
يضبط مثال الرمز البرمجي التالي الحدّ الأقصى لتنبيه السرعة البسيطة على %5 أعلى من الحدّ الأقصى للسرعة، والحدّ الأقصى لتنبيه السرعة الكبيرة على %10 أعلى من الحدّ الأقصى للسرعة. ويحدد أن الخريطة تعرض تنبيهًا بعد تجاوز حد التنبيه لمدة 5 ثوانٍ.
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(white) |
| MinorSpeedAlertBackgroundColorNightMode | 0x000000 |
| MinorSpeedAlertTextColorDayMode | 0xd93025 |
| MinorSpeedAlertTextColorNightMode | 0xd93025 |
| MajorSpeedAlertBackgroundColorDayMode | 0xd93025 |
| MajorSpeedAlertBackgroundColorNightMode | 0xd93025 |
| MajorSpeedAlertTextColorDayMode | 0xffffff(white) |
| MajorSpeedAlertTextColorNightMode | 0xffffff(white) |
يمكنك تحديد لون النص والخلفية لعداد السرعة لكل من تنبيهات السرعة البسيطة والكبيرة:
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 NavigationFragment.
navigationFragment.setSpeedometerUiOptions(speedometerUiOptionsBuilder.build());
navigationFragment.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);