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

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

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

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