Định cấu hình cảnh báo đồng hồ tốc độ

Khi tính năng chỉ đường được bật, SDK Điều hướng dành cho Android sẽ hiển thị một mục kiểm soát giới hạn tốc độ ở góc dưới bên trái của bản đồ cho thấy giới hạn tốc độ hiện tại. Nếu người lái xe vượt quá giới hạn tốc độ, chế độ điều khiển sẽ mở rộng để hiển thị đồng hồ tốc độ bên cạnh màn hình giới hạn tốc độ và kích hoạt cảnh báo khi tốc độ đạt đến một ngưỡng nhất định.

Theo mặc định, SDK Điều hướng sẽ kích hoạt một cảnh báo nhỏ về tốc độ khi người lái xe vượt quá giới hạn tốc độ 5 dặm/giờ (hoặc 10 km/giờ) và thay đổi màu của văn bản đồng hồ tốc độ sang màu đỏ. Nó hiển thị một cảnh báo tốc độ lớn khi người lái xe vượt quá giới hạn tốc độ 10 dặm/giờ (hoặc 20 km/giờ) và thay đổi màu nền của đồng hồ tốc độ sang màu đỏ.

Bạn có thể tuỳ chỉnh cả ngưỡng kích hoạt cảnh báo cũng như màu văn bản và màu nền mà đồng hồ tốc độ hiển thị. Bạn cũng có thể sử dụng SDK Điều hướng để cung cấp thông tin về tốc độ của người lái theo các ngưỡng mà bạn đã đặt. Ví dụ: bạn có thể cung cấp thông tin về tốc độ cho người đi chung xe để giúp họ khuyến khích người lái xe tuân thủ giới hạn tốc độ và cải thiện độ an toàn.

Tùy chỉnh ngưỡng cho cảnh báo tốc độ

Bạn có thể tuỳ chỉnh ngưỡng cảnh báo tốc độ cho cả cảnh báo tốc độ nhỏ và lớn dưới dạng tỷ lệ phần trăm so với giới hạn tốc độ của tốc độ hiện tại. Bạn cũng có thể chỉ định khoảng thời gian vượt quá ngưỡng trước khi bản đồ hiển thị cảnh báo.

Mã ví dụ sau đây đặt ngưỡng cho một cảnh báo tốc độ nhỏ thành 5% vượt quá giới hạn tốc độ và ngưỡng cho một cảnh báo tốc độ lớn là 10%. Phương thức này chỉ định rằng bản đồ sẽ hiển thị một cảnh báo sau khi vượt quá ngưỡng cảnh báo trong 5 giây.

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

Tuỳ chỉnh cách đồng hồ tốc độ hiển thị cảnh báo tốc độ

Để các cảnh báo tốc độ được chú ý hơn, bạn có thể tuỳ chỉnh màu sắc của màn hình đồng hồ tốc độ cho từng cấp độ cảnh báo.

Bảng sau đây trình bày các màu mặc định cho cảnh báo tốc độ trong lớp NavigationView:

Phần tửMàu
MinorSpeedAlertBackgroundColorDayMode 0xffffff(màu trắng)
MinorSpeedAlertBackgroundColorNightMode 0x000.000
MinorSpeedAlertTextColorDayMode 0xd93025
MinorSpeedAlertTextColorNightMode 0xd93025
MajorSpeedAlertBackgroundColorDayMode 0xd93025
MajorSpeedAlertBackgroundColorNightMode 0xd93025
MajorSpeedAlertTextColorDayMode 0xffffff(màu trắng)
MajorSpeedAlertTextColorNightMode 0xffffff(màu trắng)

Bạn có thể chỉ định văn bản và màu nền của đồng hồ tốc độ cho cả cảnh báo tốc độ nhỏ và cảnh báo lớn:

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

Nhận thông tin về tốc độ từ người lái xe

Nếu ứng dụng yêu cầu chia sẻ thông tin về tốc độ của người lái, bạn cũng có thể sử dụng SDK Điều hướng để cung cấp thông tin về tốc độ của người lái xe. Điều này có thể hữu ích cho các ứng dụng đi chung xe mà trong đó người vận hành có thể muốn theo dõi việc người lái xe chạy quá tốc độ quá mức để cải thiện độ an toàn. Bạn cũng có thể làm việc này mà không cần hiển thị khung hiển thị điều hướng cho người dùng trong ứng dụng.

Ví dụ: ví dụ sau đây chia sẻ thông tin về tốc độ khi tốc độ là một tỷ lệ phần trăm đã chỉ định vượt quá giới hạn tốc độ:

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