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