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 ostrzeżenie 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 drobnego alertu o przekroczeniu prędkości na 5% powyżej limitu prędkości, a próg dla poważnego alertu o 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 w przypadku 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 szybkości od użytkowników

Jeśli Twoja aplikacja wymaga udostępniania informacji o prędkości użytkownika, możesz też użyć pakietu Navigation SDK, aby udostępnić informacje o prędkoś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);