Khi chế độ chỉ đường được bật, Navigation SDK cho Android sẽ hiển thị một nút điều khiển giới hạn tốc độ ở góc dưới cùng bên trái của bản đồ, cho biết giới hạn tốc độ hiện tại. Nếu người dùng vượt quá giới hạn tốc độ, chế độ kiểm soát sẽ mở rộng để hiển thị một đồng hồ tốc độ bên cạnh màn hình hiển thị 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, Navigation SDK sẽ kích hoạt cảnh báo tốc độ nhỏ khi người dùng vượt quá giới hạn tốc độ 8 km/h (hoặc 16 km/h) và thay đổi màu của văn bản trên đồng hồ đo tốc độ thành màu đỏ. Cảnh báo này sẽ kích hoạt cảnh báo tốc độ cao khi người dùng vượt quá giới hạn tốc độ 16 km/h (hoặc 20 km/h) và thay đổi màu nền của đồng hồ tốc độ thành màu đỏ.
Bạn có thể tuỳ chỉnh cả ngưỡng kích hoạt cảnh báo cũng như 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 Navigation SDK để cung cấp thông tin về tốc độ của người dùng 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 các nhà điều hành dịch vụ đi chung xe để giúp họ khuyến khích người dùng tuân thủ giới hạn tốc độ và cải thiện độ an toàn.
Tuỳ 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.
Ví dụ về mã sau đây đặt ngưỡng cho cảnh báo tốc độ nhỏ là 5% so với giới hạn tốc độ và ngưỡng cho cảnh báo tốc độ lớn là 10% so với giới hạn tốc độ. Thông số này chỉ định rằng bản đồ sẽ hiển thị một cảnh báo sau khi ngưỡng cảnh báo bị vượt quá 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ảnh báo tốc độ thu hút sự chú ý hơn, bạn có thể tuỳ chỉnh màu sắc của màn hình đồng hồ đo tốc độ cho từng mức cảnh báo.
Bảng sau đây cho biết màu mặc định của cảnh báo tốc độ trong lớp NavigationView
:
Phần tử | Màu |
---|---|
MinorSpeedAlertBackgroundColorDayMode | 0xffffff(trắng) |
MinorSpeedAlertBackgroundColorNightMode | 0x000000 |
MinorSpeedAlertTextColorDayMode | 0xd93025 |
MinorSpeedAlertTextColorNightMode | 0xd93025 |
MajorSpeedAlertBackgroundColorDayMode | 0xd93025 |
MajorSpeedAlertBackgroundColorNightMode | 0xd93025 |
MajorSpeedAlertTextColorDayMode | 0xffffff(trắng) |
MajorSpeedAlertTextColorNightMode | 0xffffff(trắng) |
Bạn có thể chỉ định màu 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à 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 dùng
Nếu ứng dụng của bạn yêu cầu chia sẻ thông tin về tốc độ của người dùng, bạn cũng có thể sử dụng Navigation SDK để cung cấp thông tin về tốc độ của người dùng. Ví dụ: điều này có thể hữu ích cho các ứng dụng đi chung xe, trong đó nhà điều hành có thể muốn theo dõi tốc độ vượt quá của người dùng để cải thiện độ an toàn. Bạn cũng có thể thực hiện việc này mà không cần hiển thị chế độ xem đ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 độ vượt quá giới hạn tốc độ một tỷ lệ phần trăm cụ thể:
// 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);