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

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

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

לדוגמה, בדוגמה הבאה משותף מידע על מהירות כשהמהירות היא אחוז מסוים מעל מגבלת המהירות:

 // 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);