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

Gdy nawigacja jest włączona, pakiet SDK nawigacji na Androida wyświetla w lewym dolnym rogu mapy element sterujący, który wskazuje aktualne ograniczenie prędkości. Jeśli kierowca przekroczy dozwoloną prędkość, przycisk rozwija się i wyświetla prędkościomierz obok wyświetlacza ograniczenia prędkości. Gdy prędkość osiągnie określony próg, wyświetli się alert.

Domyślnie pakiet SDK nawigacji aktywuje drobny alert prędkości, gdy kierowca przekroczy dozwoloną prędkość o 5 mph (lub 10 km/h), i zmieni kolor tekstu prędkościomierza na czerwony. Włącza ostrzeżenie, gdy kierowca przekroczy dozwoloną prędkość o 20 km/h i zmienia kolor tła prędkościomierza na czerwony.

Możesz dostosować zarówno próg uruchamiania alertów, jak i kolory tekstu i tła wyświetlane przez prędkościomierz. Możesz też użyć pakietu SDK nawigacji, by udostępnić informacje o prędkości kierowcy zgodnie z ustawionymi progami. Na przykład możesz udostępnić informacje o szybkości jazdy operatorom przejazdów, aby zachęcić ich do przestrzegania limitów prędkości i poprawić bezpieczeństwo.

Dostosuj progi alertów dotyczących prędkości

Możesz dostosować próg alertu o szybkości w przypadku drobnych i poważnych alertów o prędkości. Wartość ta będzie określona jako wartość procentowa w stosunku do bieżącego ograniczenia prędkości. Możesz też określić, po jakim czasie zostanie przekroczony próg, zanim na mapie wyświetli się alert.

Poniższy przykładowy kod ustawia próg w przypadku niewielkiego alertu o prędkości na 5% przekroczenia limitu prędkości, a w przypadku poważnego alertu o prędkości na 10%. Wskazuje on, że mapa wyświetla alert po przekroczeniu progu alertu na 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 prędkościomierza

Aby użytkownicy otrzymywali więcej informacji o alertach o prędkości, możesz dostosować kolory wyświetlacza prędkościomierza do każdego poziomu alertu.

W tej tabeli znajdziesz domyślne kolory alertów o szybkości w klasie NavigationView:

ElementKolor
MinorSpeedAlertBackgroundColorDayMode 0xffffff(biała)
MinorSpeedAlertBackgroundColorNightMode 0x000000
MinorSpeedAlertTextColorDayMode 0 x D93025
MinorSpeedAlertTextColorNightMode 0 x D93025
MajorSpeedAlertBackgroundColorDayMode 0 x D93025
MajorSpeedAlertBackgroundColorNightMode 0 x D93025
MajorSpeedAlertTextColorDayMode 0xffffff(biała)
MajorSpeedAlertTextColorNightMode 0xffffff(biała)

Możesz określić tekst i kolor tła prędkościomierza – zarówno dla małych, jak i dla dużych 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);

Otrzymuj od kierowców informacje o szybkości

Jeśli Twoja aplikacja wymaga udostępniania informacji o prędkości kierowcy, możesz też skorzystać z pakietu Navigation SDK, aby udostępnić informacje o prędkości kierowcy. Może to być przydatne w przypadku wspólnych przejazdów, w których operator może monitorować nadmierną prędkość kierowców, aby zwiększyć bezpieczeństwo. Można to również zrobić bez konieczności renderowania widoku nawigacji w aplikacji.

Na przykład ten przykład przedstawia informacje o prędkości, która przekracza limit o określoną wartość procentową:

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