عند تمكين التنقل، تعرض حزمة SDK للتنقل في Android عنصر التحكم في حدود السرعة أسفل الجانب الأيمن من الخريطة والذي يوضح حد السرعة الحالي. إذا تجاوز مستخدم الحدّ الأقصى للسرعة، يتم توسيع وحدة التحكّم لعرض عداد سرعة بجانب شاشة الحدّ الأقصى للسرعة وتنشيط التنبيهات عندما تصل السرعة إلى حدّ معيّن.
يُطلق حِزم تطوير البرامج (SDK) لنظام التنقّل تلقائيًا تنبيهًا بسيطًا بشأن السرعة عندما يتجاوز المستخدِم سرعة المرور المسموح بها بمقدار 5 أميال في الساعة (أو 10 كيلومتر في الساعة)، ويغيّر لون عداد السرعة إلى الأحمر. فهي تعمل على إصدار تنبيه رئيسي للسرعة عندما يتجاوز المستخدم حد السرعة بمقدار 10 ميل في الساعة (أو 20 كم/ساعة)، وتغير لون خلفية عدّاد السرعة إلى اللون الأحمر.
يمكنك تخصيص كل من حد إطلاق التنبيهات وألوان النص والخلفية التي يعرضها عدّاد السرعة. يمكنك أيضًا استخدام حزمة SDK للتنقّل لإتاحة معلومات السرعة للمستخدمين وفقًا للحدود التي سبق لك ضبطها. على سبيل المثال، يمكنك إتاحة معلومات السرعة لمشغّلي خدمات مشاركة الرحلات لمساعدتهم في تشجيع المستخدمين على الالتزام بالحدّ الأقصى للسرعة وتحسين مستوى السلامة.
تخصيص الحدود القصوى لتنبيهات السرعة
يمكنك تخصيص الحدّ الأدنى لتنبيهات السرعة لكلّ من تنبيهات السرعة الطفيفة والكبيرة كنسبة مئوية تزيد عن الحدّ الأقصى للسرعة الحالية. يمكنك أيضًا تحديد مدّة تجاوز الحدّ المسموح به قبل أن تعرِض الخريطة التنبيه.
يضبط مثال الرمز البرمجي التالي الحدّ الأدنى لتنبيه السرعة البسيط على خمسة بالمئة فوق الحدّ الأقصى للسرعة، والحدّ الأدنى لتنبيه السرعة الكبير على 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(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 SupportNavigationFragment.
supportNavigationFragment.setSpeedometerUiOptions(speedometerUiOptionsBuilder.build());
supportNavigationFragment.setSpeedometerEnabled(true);
تلقّي معلومات السرعة من المستخدمين
إذا كان تطبيقك يتطلّب مشاركة معلومات حول سرعة المستخدم، يمكنك أيضًا استخدام حزمة تطوير البرامج (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);