Konfigurowanie alertów dotyczących prędkościomierza

Gdy nawigacja jest włączona, pakiet Navigation SDK na Androida wyświetla w lewym dolnym rogu mapy element sterujący ograniczeniem prędkości, który pokazuje aktualne ograniczenie prędkości. Jeśli użytkownik przekroczy ograniczenie prędkości, element sterujący rozwinie się, aby wyświetlić prędkościomierz obok wyświetlacza ograniczenia prędkości, i będzie wywoływać alerty, gdy prędkość osiągnie określony próg.

Domyślnie pakiet Navigation SDK wywołuje alert o niewielkim przekroczeniu prędkości, gdy użytkownik przekroczy limit o 5 mil na godzinę (lub 10 km/h), i zmienia kolor tekstu prędkościomierza na czerwony. Gdy użytkownik przekroczy dozwoloną prędkość o 10 mil na godzinę (lub 20 km/h), włączy się alert o dużej prędkości, a tło prędkościomierza zmieni kolor na czerwony.

Możesz dostosować zarówno próg wyzwalania alertów, jak i kolory tekstu i tła wyświetlane przez prędkościomierz. Możesz też użyć pakietu Navigation SDK, aby udostępniać informacje o prędkości użytkownika zgodnie z ustawionymi przez Ciebie progami. Możesz na przykład udostępniać informacje o prędkości operatorom usług przewozu osób, aby zachęcać użytkowników do przestrzegania ograniczeń prędkości i zwiększać bezpieczeństwo.

Dostosowywanie progów alertów o przekroczeniu prędkości

Możesz dostosować próg powiadomienia o przekroczeniu prędkości dla drobnych i poważnych powiadomień o przekroczeniu prędkości jako procent przekroczenia obowiązującego ograniczenia prędkości. Możesz też określić, jak długo próg ma być przekraczany, zanim na mapie pojawi się alert.

Poniższy przykład kodu ustawia próg dla alertu o niewielkim przekroczeniu prędkości na 5% powyżej limitu prędkości, a próg dla alertu o znacznym przekroczeniu prędkości na 10% powyżej limitu prędkości. Określa, że mapa wyświetla alert po przekroczeniu progu alertu przez 5 sekund.


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

Dostosowywanie sposobu wyświetlania alertów o prędkości na prędkościomierzu

Aby alerty dotyczące prędkości były bardziej widoczne, możesz dostosować kolory wyświetlacza prędkościomierza dla każdego poziomu alertu.

W poniższej tabeli znajdziesz domyślne kolory alertów o przekroczeniu prędkości w przypadku NavigationView:

ElementKolor
MinorSpeedAlertBackgroundColorDayMode 0xffffff(biały)
MinorSpeedAlertBackgroundColorNightMode 0x000000
MinorSpeedAlertTextColorDayMode 0xd93025
MinorSpeedAlertTextColorNightMode 0xd93025
MajorSpeedAlertBackgroundColorDayMode 0xd93025
MajorSpeedAlertBackgroundColorNightMode 0xd93025
MajorSpeedAlertTextColorDayMode 0xffffff(biały)
MajorSpeedAlertTextColorNightMode 0xffffff(biały)

Możesz określić kolor tekstu i tła prędkościomierza dla mniejszych i większych alertów o przekroczeniu prędkości:

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

Otrzymywanie informacji o prędkości od użytkowników

Jeśli Twoja aplikacja wymaga udostępniania informacji o szybkości użytkownika, możesz też użyć pakietu Navigation SDK, aby udostępnić informacje o szybkości użytkownika. Może to być przydatne na przykład w przypadku aplikacji do przewozu osób, w których operator może chcieć monitorować nadmierną prędkość użytkowników, aby zwiększyć bezpieczeństwo. Możesz to zrobić bez konieczności renderowania w aplikacji widoku nawigacji dla użytkownika.

Na przykład w tym przypadku informacje o prędkości są udostępniane, gdy prędkość jest o określony odsetek wyższa od limitu:

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