Định cấu hình sự gián đoạn theo thời gian thực
Sự cố 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ề sự cố dọc theo tuyến đường của họ, đồng thời cho phép người dùng báo cáo và xác minh sự cố mà họ gặp phải. Ví dụ về tình trạng gián đoạn bao gồm tai nạn xe cộ, tắc nghẽn 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 nhất định. 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, bao gồm cả những điểm cần lưu ý đố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 sau đây về tình trạng gián đoạn theo thời gian thực trong trải nghiệm chỉ đường chính:- Chú thích tương tác về sự gián đoạn dọc theo tuyến đường.
- Cảnh báo gián đoạn tự động kèm theo tính năng bỏ phiếu trong khi chỉ đường.
- Báo cáo sự cố trong khi đi theo chỉ dẫn.
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à tuỳ chọn cấu hình hiện có.
Chú thích tương tác về tình trạng gián đoạn dọc theo tuyến đường
Khi một ứng dụng hiển thị tuyến đường, trong phần tổng quan về tuyến đường hoặc 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, các sự cố gián đoạn ngoài tuyến đường cũng sẽ xuất hiện trên bản đồ. Chú thích bao gồm một biểu tượng cho biết loại gián đoạn.
Bạn có thể kiểm soát việc hiển thị chú thích về sự gián đoạn dọc theo tuyến đường bằng cách sử dụng setTrafficPromptsEnabled. Thuộc tính này cũng kiểm soát việc hiển thị cảnh báo tự động khi người dùng gặp phải sự 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 một chú thích về sự gián đoạn, một thẻ thông tin sẽ mở ra và cung cấp thêm thông tin chi tiết. Điều này áp dụng cho cả chú thích trên tuyến đường và ngoài tuyến đường, mặc dù chú thích ngoài tuyến đường chỉ xuất hiện nếu lớp giao thông được bật. Thẻ này cho biết loại sự cố, thời điểm báo cáo gần đây nhất và đôi khi có cả lựa chọn bỏ phiếu về việc sự cố 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ẻ sẽ khác nhau tuỳ thuộc vào việc người dùng có đang sử dụng tính năng chỉ đường hay không.
Thẻ thông tin chú thích trên màn hình tổng quan về tuyến đường, trước khi bắt đầu đi theo chỉ dẫn
Trước khi bắt đầu đi theo chỉ dẫn, 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 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ật lớp lưu lượng truy cập. Thẻ thông tin cung cấp thêm thông tin chi tiết về sự cố gián đoạn.
Bạn có thể kiểm soát khả năng người dùng nhấn vào chú thích về sự gián đoạn trên thông tin tổng quan về 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 đi theo chỉ dẫn, người dùng có thể nhấn vào chú thích về sự cố trên tuyến đường hoặc ngoài tuyến đường để mở thẻ thông tin. Thẻ này cho biết loại sự cố 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 sự cố có còn tiếp diễn hay không.
Người dùng có thể bình chọn cho các sự cố 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ý các lượt bình chọn này để xác định xem có nên tiếp tục hiển thị thông tin về sự cố hay không. Các lượt bình chọn 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à SDK Điều hướng.
Bạn có thể kiểm soát việc hiển thị và khả năng nhấn vào chú thích về sự gián đoạn trong khi chỉ đường bằng cách sử dụng
setTrafficPromptsEnabled
, phương thức này cũng kiểm soát
việc hiển thị chú thích dọc theo tuyến đường và
việc hiển thị cảnh báo tự động khi người dùng đến gần một sự gián đoạn.
// 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ỏ phiếu trong khi chỉ đường
Trong quá trình đi theo chỉ dẫn, khi người dùng đến gần một sự cố trên tuyến đường, một lời nhắc sẽ xuất hiện kèm theo thông tin về sự cố đó và các nút để bình chọn xem sự cố đó có còn 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à SDK Điều hướng, cũng như dùng các lượt bình chọn đó để xác định xem có tiếp tục hiển thị sự cố gián đoạn hay không.
Bạn có thể định cấu hình cách hiển thị lời nhắc cảnh báo trong khi điều hướng bằng cách sử dụng setTrafficPromptsEnabled. Thao tác này cũng kiểm soát cách hiển thị chú thích dọc theo tuyến đường.
// Using the SupportNavigationFragment mNavFragment.setTrafficPromptsEnabled(true); // Using the NavigationView navigationView.setTrafficPromptsEnabled(true);
Báo cáo sự cố 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 trên 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, trong đó có các loại sự cố mà người dùng có thể báo cáo. Báo cáo do người dùng gửi sẽ được Google xử lý và 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.
Việc báo cáo đường bị đóng có thể đưa ra một tuyến đường thay thế để tránh đoạn đường bị chặn, 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 hoạt động.
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 khi điều hướ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 tùy chỉnh
Thay vì nút báo cáo sự gián đoạn tiêu chuẩn, bạn có thể thêm nút báo cáo tùy 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 tùy 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 ở một 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 được đáp ứng, 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());
Làm việc với giao diện người dùng điều hướng tuỳ chỉnh
Nếu cách triển khai SDK Điều hướng của bạn có các phần tử trên giao diện người dùng tuỳ chỉnh, thì bạn cần xem xét các thành phần gây gián đoạn theo thời gian thực để tránh xung đột.
Vị trí nút báo cáo
Theo mặc định, nút báo cáo sự cố nằm ở 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 để nhường chỗ cho các phần tử trên giao diện người dùng tuỳ chỉnh, hãy thêm một chế độ điều khiển tuỳ chỉnhBOTTOM_END_BELOW hoặc FOOTER để đẩ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ế độ điều khiển tuỳ chỉnh cũng đảm bảo rằng mọi lời nhắc do SDK Điều hướng hiển thị đều được phân lớp đúng cách trên các phần tử trên giao diện người dùng tuỳ chỉnh trong khi hiển thị. Nếu bạn không thể sử dụng các chế độ kiểm soát tuỳ chỉnh, hãy dùng
Prompt Visibility API để quản lý các xung đột có thể xảy ra về giao diện người dùng.
Prompt Visibility API (Thử nghiệm)
API Chế độ 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 SDK điều hướng tạo ra 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 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 của SDK điều hướng sắp xuất hiện và ngay khi phần tử đó bị xoá. Bạn có thể nhận lệnh gọi lại cho các yếu 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ư các thông báo khác do SDK Điều hướng tạo ra.// 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)