Chọn nền tảng: Android iOS

Định cấu hình thông tin gián đoạn theo thời gian thực

Thông tin gián đoạn theo thời gian thực là một tập hợp các tính năng cảnh báo người dùng về tình trạng gián đoạn trên tuyến đường của họ, đồng thời cho phép người dùng báo cáo và xác minh tình trạng gián đoạn mà họ gặp phải. Ví dụ về tình trạng tắc nghẽn bao gồm tai nạn xe cộ, tình trạng ùn tắc giao thông, sự hiện diện của cảnh sát và camera đo tốc độ, công trình xây dựng, làn đường bị đóng và một số điều kiện thời tiết. Trang này giải thích các tính năng gián đoạn theo thời gian thực và các lựa chọn cấu hình của các tính năng này, bao gồm cả những điểm cần cân nhắc đối với các ứng dụng sử dụng giao diện người dùng điều hướng tuỳ chỉnh.

Các tính năng về tình trạng gián đoạn theo thời gian thực

Navigation SDK bao gồm các tính năng gián đoạn theo thời gian thực sau đây trong trải nghiệm điều hướng cốt lõi:

Các tính năng này có thể định cấu hình và được bật theo mặc định. Các phần sau đây cung cấp thêm thông tin về các tính năng và lựa chọn cấu hình hiện có.

Chú thích gián đoạn tương tác dọc theo tuyến đường

Khi một ứng dụng hiển thị một tuyến đường, cho dù là trong phần tổng quan về tuyến đường hay trong khi đang di chuyển, mọi sự cố hiện tại sẽ xuất hiện dưới dạng chú thích dọc theo tuyến đường. Khi bạn bật lớp giao thông, tình trạng gián đoạn ngoài tuyến đường cũng sẽ xuất hiện trên bản đồ. Chú thích có một biểu tượng cho biết loại gián đoạn.

Chú thích dọc theo tuyến đường

Bạn có thể kiểm soát việc hiển thị chú thích về tình trạng gián đoạn dọc theo các tuyến đường bằng cách sử dụng setTrafficPromptsEnabled. Lựa chọn này cũng kiểm soát việc hiển thị cảnh báo tự động khi người dùng tiếp cận tình trạng gián đoạn.

// Using the SupportNavigationFragment
mNavFragment.setTrafficPromptsEnabled(true);

// Using the NavigationView
navigationView.setTrafficPromptsEnabled(true);

Hiển thị thông tin chi tiết về sự gián đoạn khi người dùng nhấn vào chú thích

Khi bạn nhấn vào chú thích về tình trạng gián đoạn, một thẻ thông tin sẽ mở ra với nhiều thông tin chi tiết hơn. Điều này áp dụng cho cả chú thích trên tuyến đường và chú thích ngoài tuyến đường, mặc dù chú thích ngoài tuyến đường chỉ xuất hiện nếu bạn bật lớp giao thông. Thẻ này hiển thị loại gián đoạn, thời gian báo cáo gần đây nhất và đôi khi có lựa chọn bình chọn xem tình trạng gián đoạn có còn tiếp diễn hay không. Loại thẻ thông tin và các lựa chọn cấu hình của thẻ này sẽ khác nhau tuỳ thuộc vào việc người dùng có đang ở chế độ chỉ đường hay không.

Thẻ thông tin chú thích trên thông tin tổng quan về tuyến đường, trước khi bắt đầu chế độ chỉ đường đang hoạt động

Trước khi bắt đầu chế độ chỉ đường chủ động, người dùng có thể nhấn vào chú thích trên tuyến đường hoặc ngoài tuyến đường trên bản đồ hoặc phần tổng quan về tuyến đường để mở thẻ thông tin. Chú thích ngoài tuyến đường yêu cầu bạn bật lớp giao thông. Thẻ thông tin cung cấp thêm thông tin chi tiết về tình trạng gián đoạn.

Thẻ thông tin tổng quan

Bạn có thể kiểm soát khả năng người dùng nhấn vào chú thích về sự cố trên bản tóm tắt tuyến đường để hiển thị thêm thông tin bằng cách sử dụng setTrafficIncidentCardsEnabled.

// Using the SupportNavigationFragment
mNavFragment.setTrafficIncidentCardsEnabled(true);

// Using the NavigationView
navigationView.setTrafficIncidentCardsEnabled(true);

Thẻ thông tin chú thích trong khi đi theo chỉ dẫn

Trong khi đang chỉ đường, người dùng có thể nhấn vào chú thích về sự cố trên đường hoặc ngoài đường để mở thẻ thông tin. Thẻ này cho biết loại gián đoạn và thời gian báo cáo gần đây nhất, đồng thời có các nút để người dùng bình chọn xem tình trạng gián đoạn có còn tiếp diễn hay không.

Người dùng có thể bình chọn cho các thông tin gián đoạn trên tuyến đường và ngoài tuyến đường trong phạm vi 5 km, ngoại trừ trường hợp đường bị đóng. Google xử lý những lượt bình chọn này để xác định xem có nên tiếp tục hiển thị thông báo gián đoạn hay không. Phiếu bầu cũng có thể xuất hiện trên bản đồ cho những người dùng khác của Google Maps và Navigation SDK.

Thẻ thông tin chỉ đường đang hoạt động

Bạn có thể kiểm soát việc hiển thị và khả năng nhấn của chú thích về sự cố trong quá trình điều hướng đang diễn ra bằng cách sử dụng setTrafficPromptsEnabled. Lựa chọn này cũng kiểm soát việc hiển thị chú thích dọc theo các tuyến đường và việc hiển thị cảnh báo tự động khi người dùng tiếp cận một sự cố.

// Using the SupportNavigationFragment
mNavFragment.setTrafficPromptsEnabled(true);

// Using the NavigationView
navigationView.setTrafficPromptsEnabled(true);

Cảnh báo gián đoạn tự động có tính năng bình chọn trong khi chỉ đường

Trong quá trình chỉ đường, khi người dùng đến gần một điểm gián đoạn trên tuyến đường, một lời nhắc sẽ xuất hiện kèm theo thông tin về điểm gián đoạn và các nút để bình chọn xem điểm gián đoạn đó có còn tồn tại hay không. Google sẽ xử lý các lượt bình chọn do người dùng gửi và có thể hiển thị các lượt bình chọn đó trên bản đồ cho những người dùng khác của Google Maps và Navigation SDK, cũng như dùng để xác định xem có nên tiếp tục hiển thị thông tin gián đoạn hay không.

Thẻ thông tin chỉ đường đang hoạt động

Bạn có thể định cấu hình chế độ hiển thị lời nhắc cảnh báo trong quá trình điều hướng đang hoạt động bằng cách sử dụng setTrafficPromptsEnabled. Lớp này cũng kiểm soát chế độ hiển thị chú thích dọc theo các tuyến đường.

// Using the SupportNavigationFragment
mNavFragment.setTrafficPromptsEnabled(true);

// Using the NavigationView
navigationView.setTrafficPromptsEnabled(true);

Báo cáo tình trạng gián đoạn trong khi đi theo chỉ dẫn

Trong chế độ thao tác đang hoạt động, một nút sẽ xuất hiện trên giao diện người dùng chỉ đường, cho phép người dùng báo cáo các sự cố mới dọc theo tuyến đường của họ. Khi người dùng nhấn vào nút này, một trình đơn sẽ xuất hiện với các loại thông tin gián đoạn có thể báo cáo. Google sẽ xử lý các báo cáo do người dùng gửi và có thể hiển thị các báo cáo đó trên bản đồ cho những người dùng khác của Google Maps và Navigation SDK.

Khi bạn báo cáo một đoạn đường bị đóng, Maps có thể đề xuất một tuyến đường thay thế để đi vòng qua đoạn đường bị chặn, đồng thời nhắc người dùng xác nhận hoặc từ chối việc đổi tuyến đường. Tính năng này có thể không dùng được.

Nút báo cáo Trình đơn báo cáo

Hiện hoặc ẩn nút báo cáo chuẩn

Bạn có thể định cấu hình chế độ hiển thị của nút báo cáo tiêu chuẩn trong quá trình điều hướng đang hoạt động bằng cách sử dụng setReportIncidentButtonEnabled.

// Enables the incident reporting button to show in situations where incident
// reporting is possible.

// Using the SupportNavigationFragment
mNavFragment.setReportIncidentButtonEnabled(true);

// Using the NavigationView
navigationView.setReportIncidentButtonEnabled(true);

Thêm nút báo cáo tuỳ chỉnh

Thay vì nút báo cáo gián đoạn tiêu chuẩn, bạn có thể thêm một nút báo cáo tuỳ chỉnh vào giao diện người dùng điều hướng. Khi người dùng nhấp vào nút tuỳ chỉnh, bạn có thể kích hoạt việc hiển thị trình đơn báo cáo bằng cách gọi phương thức showReportIncidentsPanel. Trước khi thêm nút báo cáo tuỳ chỉnh, hãy xác minh rằng ứng dụng đang ở chế độ điều hướng đang hoạt động và người dùng đang ở quốc gia có bật tính năng báo cáo bằng cách gọi isIncidentReportingAvailable. Nếu một trong hai điều kiện này không đúng, thì trình đơn báo cáo sẽ không xuất hiện.

  Button customReportIncidentButton = findViewById(R.id.custom_reporting_button);
  
  // Check if reporting is available before displaying your button
  customReportIncidentButton.setVisibility(
      navigationView.isReportingAvailable ? View.VISIBLE : View.GONE);
  
  // Trigger the reporting flow if the button is clicked
  customReportIncidentButton.setOnClickListener(v ->
      navigationView.showReportIncidentsPanel());
  

Thao tác với giao diện người dùng điều hướng tuỳ chỉnh

Nếu quá trình triển khai Navigation SDK có các phần tử giao diện người dùng tuỳ chỉnh, bạn cần cân nhắc các phần tử gây gián đoạn theo thời gian thực để tránh xung đột.

Vị trí của nút báo cáo

Theo mặc định, nút báo cáo sự cố được đặt ở góc dưới cùng/góc cuối của bản đồ – ở bên phải đối với ngôn ngữ đọc từ trái sang phải và bên trái đối với ngôn ngữ đọc từ phải sang trái. Nếu bạn cần di chuyển nút báo cáo để tạo khoảng trống cho các phần tử tuỳ chỉnh trên giao diện người dùng, hãy thêm chế độ điều khiển tuỳ chỉnh BOTTOM_END_BELOW hoặc FOOTER. Chế độ này sẽ đẩy vị trí của nút lên trên màn hình. Việc đặt giao diện người dùng tuỳ chỉnh của riêng bạn trong các chế độ kiểm soát tuỳ chỉnh cũng đảm bảo rằng mọi lời nhắc do Navigation SDK hiển thị đều được xếp lớp đúng cách trên các phần tử giao diện người dùng tuỳ chỉnh của bạn trong khi hiển thị. Nếu không thể sử dụng chế độ kiểm soát tuỳ chỉnh, hãy dùng Prompt Visibility API để quản lý các xung đột tiềm ẩn về giao diện người dùng.

Prompt Visibility API (Thử nghiệm)

Prompt Visibility API (API Hiển thị lời nhắc) giúp bạn tránh xung đột giữa các phần tử trên giao diện người dùng do Navigation SDK tạo và các phần tử trên giao diện người dùng tuỳ chỉnh của riêng bạn bằng cách thêm một trình nghe để nhận lệnh gọi lại trước khi một phần tử trên giao diện người dùng Navigation SDK sắp xuất hiện và ngay khi phần tử đó bị xoá. Bạn có thể nhận các lệnh gọi lại cho các phần tử gián đoạn theo thời gian thực, bao gồm cả thẻ thông tin, lời nhắc và trình đơn báo cáo gián đoạn, cũng như cho các thông báo khác do Navigation SDK tạo.
// Sample listener
val listener: PromptVisibilityChangedListener = { isVisible ->
	if (isVisible) {
		customFab.visibility = false
		customFooter.visibility = false
		moveSomeOtherThingsAround()
	} else {
		customFab.visibility = true
		customFooter.visibility = true
		moveSomeThingsBackToWhereTheyWereBefore()
	}
}

// Inside onCreate()
navigationView.addPromptVisibilityChangedListener(listener)

// Inside onDestroy()
navigationView.removePromptVisibilityChangedListener(listener)