כשהניווט מופעל, ב-Navigation SDK ל-Android מוצג בפינה הימנית התחתונה של המפה פקד למגבלת המהירות, שבו מוצגת המגבלה הנוכחית. אם המשתמש חורג ממגבלת המהירות, אמצעי הבקרה מתרחב כדי להציג מד מהירות לצד תצוגת מגבלת המהירות, ומפעיל התראות כשהמהירות מגיעה לסף מסוים.
כברירת מחדל, Navigation SDK מפעיל התראה על מהירות נמוכה כשהמשתמש חורג ממהירות המותרת ב-5 קמ"ש, ומשנה את הצבע של הטקסט של מד המהירות לאדום. התראה משמעותית על מהירות מופעלת כשהמשתמש חורג מהמהירות המותרת ב-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 כדי להפוך את נתוני המהירות של המשתמש לזמינים. לדוגמה, אפשר להשתמש באפשרות הזו באפליקציות שיתוף נסיעות, שבהן המפעילים עשויים לרצות לעקוב אחרי מהירות מופרזת של משתמשים כדי לשפר את הבטיחות. אפשר לעשות זאת גם בלי להציג למשתמש תצוגת ניווט באפליקציה.
לדוגמה, בדוגמה הבאה מתבצע שיתוף של נתוני המהירות כשהמהירות גבוהה מ-10% ממגבלת המהירות:
// 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);