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