הגדרת התראות לגבי מד המהירות

כשהניווט מופעל, Navigation SDK ל-Android מציג פקד של הגבלת מהירות בפינה הימנית התחתונה של המפה, שבו מוצגת הגבלת המהירות הנוכחית. אם משתמש חורג ממגבלת המהירות, אמצעי הבקרה מתרחב כדי להציג מד מהירות לצד תצוגת מגבלת המהירות, ומפעיל התראות כשהמהירות מגיעה לסף מסוים.

כברירת מחדל, Navigation SDK מפעיל התראה על חריגה קלה מהמהירות המותרת כשהמשתמש חורג מהמהירות המותרת ב-5 מייל לשעה (או ב-10 קמ"ש), ומשנה את הצבע של הטקסט במד המהירות לאדום. הוא מפעיל התראה על מהירות גבוהה כשהמשתמש חורג ממגבלת המהירות ב-16 קמ"ש (או ב-10 מייל לשעה), ומשנה את צבע הרקע של מד המהירות לאדום.

אתם יכולים להתאים אישית את הסף להפעלת ההתראות, את הטקסט ואת צבעי הרקע שמוצגים במד המהירות. אתם יכולים גם להשתמש ב-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);