Gdy nawigacja jest włączona, pakiet SDK nawigacji dla 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 dozwoloną prędkość, element sterujący rozwinie się, aby wyświetlić prędkościomierz obok wartości progowej.
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świetlony alert o dużej prędkości, a kolor tła prędkościomierza zmieni się 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 limitu prędkości i zwiększenia bezpieczeństwa.
Dostosowywanie progów dla alertów o przekroczeniu prędkości
Możesz dostosować próg alertu o szybkości, zarówno w przypadku alertów o małej, jak i dużej szybkoś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 niewielkiej prędkości jest ustawiony na 5% ponad limit prędkości, a próg dla alertu o dużej prędkości – na 10% ponad limit prędkości. Określa on, że po przekroczeniu progu alertu przez 5 sekund mapa wyświetla alert.
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());
Dostosuj sposób, w jaki prędkościomierz wyświetla alerty o prędkości
Aby ostrzeżenia o szybkości były bardziej widoczne, możesz dostosować kolory wyświetlacza prędkości dla każdego poziomu alertu.
W tabeli poniżej znajdziesz domyślne kolory alertów dotyczących prędkości w klasie NavigationView
:
Element | Kolor |
---|---|
MinorSpeedAlertBackgroundColorDayMode | 0xffffff(biały) |
MinorSpeedAlertBackgroundColorNightMode | 0x000000 |
MinorSpeedAlertTextColorDayMode | 0xd93025 |
MinorSpeedAlertTextColorNightMode | 0xd93025 |
MajorSpeedAlertBackgroundColorDayMode | 0xd93025 |
MajorSpeedAlertBackgroundColorNightMode | 0xD93025 |
MajorSpeedAlertTextColorDayMode | 0x####(biały) |
MajorSpeedAlertTextColorNightMode | 0xffffff(biały) |
Możesz określić tekst oraz kolor tła prędkościomierza w przypadku alertów dotyczących mniejszej i dużej 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 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 prędkości:
// 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);