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

Gdy nawigacja jest włączona, pakiet SDK nawigacji dla Androida wyświetla w lewym dolnym rogu mapy kontrolkę ograniczenia prędkości, która pokazuje aktualne ograniczenie prędkości. Jeśli użytkownik przekroczy ograniczenie prędkości, kontrolka rozwinie się, aby wyświetlić prędkościomierz obok wyświetlacza ograniczeń prędkości, i wyzwoli alerty, gdy prędkość osiągnie określony próg.

Domyślnie pakiet SDK nawigacji uruchamia alert o niewielkim przekroczeniu prędkości, gdy użytkownik przekroczy limit prędkości o 5 mph (lub 10 km/h), i zmienia kolor tekstu prędkościomierza na czerwony. Gdy użytkownik przekroczy dozwoloną prędkość o 10 mph (lub 20 kph), zostanie wyświetlone ostrzeżenie o wysokiej prędkości, a tło prędkościomierza zmieni kolor na czerwony.

Możesz dostosować próg uruchamiania alertów oraz kolory tekstu i tła wyświetlane przez licznik prędkości. Możesz też użyć pakietu Navigation SDK, aby udostępnić informacje o prędkości użytkownika zgodnie z ustawionymi przez Ciebie wartościami progowymi. Możesz na przykład udostępnić informacje o prędkości operatorom usług przewozu osób, aby zachęcić ich użytkowników do przestrzegania ograniczeń prędkości i zwiększenia bezpieczeństwa.

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

Możesz dostosować próg alertów o niskiej i wysokiej prędkości jako procent od limitu prędkości bieżącej prędkości. Możesz też określić, jak długo ma być przekroczony próg, zanim mapa wyświetli alert.

W tym przykładzie kodu próg dla alertu o niewielkim przekroczeniu prędkości jest ustawiony na 5 procent powyżej limitu prędkości, a próg dla alertu o znacznym przekroczeniu prędkości – na 10 procent powyżej limitu prędkości. Określa on, ż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 przez prędkościomierz

Aby ostrzeżenia o szybkości były bardziej widoczne, możesz dostosować kolory wyświetlacza prędkości dla każdego poziomu ostrzeżenia.

W tabeli poniżej przedstawiono domyślne kolory alertów dotyczących prędkości w klasie 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 zarówno w przypadku alertów o niskiej, jak i wysokiej 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);

otrzymywać informacje o prędkoś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 SDK nawigacji, 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 w celu zwiększenia bezpieczeństwa. Możesz to zrobić bez konieczności renderowania widoku nawigacji dla użytkownika w aplikacji.

Na przykład w tym przykładzie udostępniane są informacje o prędkości, gdy jest ona o określony procent 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);