속도계 알림 구성

탐색을 사용 설정하면 Android용 Navigation SDK가 지도의 왼쪽 하단에 현재 속도 제한을 보여주는 속도 제한 컨트롤을 표시합니다. 운전자가 속도 제한을 초과하면 컨트롤이 확장되어 속도 제한 디스플레이 옆에 속도계가 표시되고 속도가 특정 기준점에 도달하면 알림이 트리거됩니다.

기본적으로 Navigation SDK는 운전자가 속도 제한 5mph (또는 10kph)를 초과하면 경미한 속도 알림을 트리거하고 속도계 텍스트 색상을 빨간색으로 변경합니다. 운전자가 속도 제한 10mph (또는 20kph)를 초과하면 주요 속도 알림을 트리거하고 속도계 배경 색상을 빨간색으로 변경합니다.

알림을 트리거하는 기준점과 속도계에 표시되는 텍스트 및 배경 색상을 모두 맞춤설정할 수 있습니다. 내비게이션 SDK를 사용하여 설정된 기준점에 따라 운전자의 속도 정보를 제공할 수도 있습니다. 예를 들어 차량 공유 운영자에게 속도 정보를 제공하여 운전자가 속도 제한을 준수하고 안전을 개선하도록 유도할 수 있습니다.

속도 알림 기준점 맞춤설정

보조 속도 알림과 주요 속도 알림의 속도 알림 기준점을 현재 속도 제한의 백분율로 맞춤설정할 수 있습니다. 지도에 알림을 표시하기 전에 기준점을 초과하는 시간을 지정할 수도 있습니다.

다음 코드 예에서는 보조 속도 알림의 임계값을 속도 제한의 5%로, 주요 속도 알림의 임계값을 속도 제한의 10%로 설정합니다. 알림 기준점이 5초를 초과하면 지도에 알림이 표시되도록 지정합니다.

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

속도계에 속도 알림이 표시되는 방식 맞춤설정

속도 알림을 더 주의를 끌기 위해 알림 수준별로 속도계 디스플레이 색상을 맞춤설정할 수 있습니다.

다음 표는 NavigationView 클래스의 속도 알림 기본 색상을 보여줍니다.

요소색상
MinorSpeedAlertBackgroundColorDayMode 0xffffff(흰색)
MinorSpeedAlertBackgroundColorNightMode 0x000000
MinorSpeedAlertTextColorDayMode 0xd93025
MinorSpeedAlertTextColorNightMode 0xd93025
MajorSpeedAlertBackgroundColorDayMode 0xd93025
MajorSpeedAlertBackgroundColorNightMode 0xd93025
MajorSpeedAlertTextColorDayMode 0xffffff(흰색)
MajorSpeedAlertTextColorNightMode 0xffffff(흰색)

경미 및 주요 속도 경보 모두 속도계의 텍스트 및 배경 색상을 지정할 수 있습니다.

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

운전자로부터 속도 정보 받기

애플리케이션에서 드라이버 속도에 관한 정보를 공유해야 하는 경우 Navigation SDK를 사용하여 드라이버의 속도 정보를 제공할 수도 있습니다. 이는 운전자가 안전을 개선하기 위해 운전자의 과도한 속도를 모니터링해야 하는 차량 공유 애플리케이션에 유용할 수 있습니다. 앱에서 사용자에게 탐색 뷰를 렌더링하지 않고도 이 작업을 할 수 있습니다.

예를 들어 다음 예는 속도가 속도 제한보다 지정된 백분율일 때 속도 정보를 공유합니다.

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