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