設定即時中斷
即時交通異常功能是一組功能,可提醒使用者沿途的交通異常狀況,並讓使用者回報及確認遇到的交通異常狀況。中斷服務的例子包括車禍、交通擁塞、警察和測速照相機、施工、車道封閉和特定天氣狀況。本頁面將說明即時中斷功能及其設定選項,包括使用自訂導覽 UI 的應用程式應考量的事項。
即時中斷功能
Navigation SDK 提供以下實時中斷功能,作為核心導航體驗的一部分:這些功能可設定,且預設為啟用。以下各節將進一步說明這些功能和可用的設定選項。
沿途的互動式中斷說明
應用程式在路線總覽或導航期間顯示路線時,任何目前的路線中斷都會以圖說的形式顯示在路線上。說明文字會包含表示中斷類型的圖示。

您可以使用 setTrafficPromptsEnabled
控管沿途路線的干擾說明顯示方式,這項屬性也會控制使用者接近干擾時,系統是否顯示自動警示。
// Using the SupportNavigationFragment mNavFragment.setTrafficPromptsEnabled(true); // Using the NavigationView navigationView.setTrafficPromptsEnabled(true);
在使用者輕觸說明文字時顯示中斷情形詳細資料
使用者輕觸插圖時,系統會顯示資訊卡,提供中斷情形的詳細資訊,包括中斷類型、上次回報時間,以及在某些情況下,讓使用者投票決定中斷情形是否仍在發生。系統可能會顯示兩種資訊卡,這取決於使用者是否處於主動導航狀態,而每種資訊卡的設定選項也各不相同。
路線總覽中的醒目資訊卡,在開始導航前顯示
使用者在開始導航前,輕觸路線總覽中的說明文字時,系統會顯示資訊卡,提供更多關於中斷情形的資訊。

您可以使用 setTrafficIncidentCardsEnabled
控制使用者在路線總覽中輕觸中斷圖示的功能,以便顯示更多資訊。
// Using the SupportNavigationFragment mNavFragment.setTrafficIncidentCardsEnabled(true); // Using the NavigationView navigationView.setTrafficIncidentCardsEnabled(true);
在導航期間顯示資訊卡
在導航期間,如果路線上出現中斷資訊說明,使用者可以輕觸該說明,顯示資訊卡,提供中斷情形的更多資訊,包括中斷類型和上次回報時間,以及可用來投票表達中斷情形是否仍存在的按鈕。Google 會處理使用者提交的投票,並可能在地圖上向其他 Google 地圖使用者和 Navigation SDK 使用者顯示,同時用於判斷是否要繼續顯示中斷情形。

您可以使用 setTrafficPromptsEnabled
控制在導航期間顯示和輕觸中斷資訊的顯示方式,這項屬性也會控制沿路顯示的資訊說明,以及使用者接近中斷資訊時顯示的自動警示。
// Using the SupportNavigationFragment mNavFragment.setTrafficPromptsEnabled(true); // Using the NavigationView navigationView.setTrafficPromptsEnabled(true);
在路線規劃期間,透過自動警報通知使用者可選擇避開的路線
在導航期間,如果使用者行經的路線發生交通中斷情形,系統會顯示提示,提供相關資訊,並提供按鈕讓使用者投票,表達交通中斷情形是否仍在發生。Google 會處理使用者提交的投票,並可能在地圖上向其他 Google 地圖和 Navigation SDK 使用者顯示,同時用於判斷是否要繼續顯示中斷情形。

您可以使用 setTrafficPromptsEnabled
設定在導航期間顯示警示提示,這項設定也用於控制沿路顯示的註解。
// Using the SupportNavigationFragment mNavFragment.setTrafficPromptsEnabled(true); // Using the NavigationView navigationView.setTrafficPromptsEnabled(true);
在導航期間回報中斷情形
在使用中導航模式期間,導航 UI 會顯示一個按鈕,讓使用者回報路線上的新中斷情形。使用者輕觸按鈕後,畫面上會顯示選單,列出可回報的干擾類型。Google 會處理使用者提交的報告,並可能在地圖上顯示給其他 Google 地圖和 Navigation SDK 使用者。


您可以使用 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);
使用自訂導覽 UI
如果 Navigation SDK 的導入作業包含自訂 UI 元素,您需要考慮實施即時中斷元素,以免發生衝突。
報表按鈕位置
根據預設,中斷服務回報按鈕會位於地圖的底端/尾角落,如果是從左至右書寫的語言,則位於右側;如果是從右至左書寫的語言,則位於左側。如果您需要移動報表按鈕,為自訂 UI 元素騰出空間,請新增BOTTOM_END_BELOW
或 FOOTER
自訂控制項,這樣做可將按鈕的位置推至畫面上方。將自訂 UI 放入自訂控制項中,也可以確保 Navigation SDK 顯示的任何提示,在顯示時會正確疊加在自訂 UI 元素上。如果無法使用自訂控制項,請使用 提示顯示 API管理潛在的 UI 衝突。
Prompt Visibility API (實驗功能)
透過提示可見度 API,您可以在 Navigation SDK 產生的 UI 元素與您自訂的 UI 元素之間避免發生衝突,方法是新增事件監聽器,在 Navigation SDK UI 元素即將顯示和移除元素時接收回呼。您可以接收即時中斷事件元素的回呼,包括資訊卡、提示和中斷事件回報選單,以及 Navigation SDK 產生的其他通知。// 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)