Настройка сбоев в реальном времени
Сбои в режиме реального времени — это набор функций, которые предупреждают пользователей о сбоях на их маршруте и позволяют пользователям сообщать и проверять сбои, с которыми они сталкиваются. Примеры сбоев включают дорожно-транспортные происшествия, пробки на дорогах, присутствие полиции и камер контроля скорости, строительные работы, перекрытие полос движения и определенные погодные условия. На этой странице описаны функции прерывания работы в режиме реального времени и параметры их конфигурации, включая рекомендации для приложений, использующих настраиваемые пользовательские интерфейсы навигации.
Функции сбоев в режиме реального времени
Навигационный 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 Maps и пользователей Navigation SDK, а также использоваться для определения того, следует ли продолжать отображать сбои.

Вы можете управлять отображением и возможностью нажатия выносок о сбоях во время активной навигации с помощью setTrafficPromptsEnabled
, который также управляет отображением выносок вдоль маршрутов и отображением автоматических оповещений, когда пользователь приближается к сбою .
// Using the SupportNavigationFragment mNavFragment.setTrafficPromptsEnabled(true); // Using the NavigationView navigationView.setTrafficPromptsEnabled(true);
Автоматические оповещения о сбоях с голосованием во время активной навигации
Во время активной навигации, когда пользователь приближается к срыву по маршруту, появляется подсказка с информацией о срыве и кнопками для голосования о наличии сбоя. Голоса, отправленные пользователями, обрабатываются Google и могут отображаться на карте для других пользователей Google Maps и Navigation SDK, а также использоваться для определения того, следует ли продолжать отображать сбои.

Настроить отображение подсказок оповещений во время активной навигации можно с помощью setTrafficPromptsEnabled
, который также управляет отображением выносок вдоль маршрутов .
// Using the SupportNavigationFragment mNavFragment.setTrafficPromptsEnabled(true); // Using the NavigationView navigationView.setTrafficPromptsEnabled(true);
Отчеты о сбоях во время активной навигации
В активном режиме навигации в пользовательском интерфейсе навигации появляется кнопка, которая позволяет пользователям сообщать о новых сбоях на своем маршруте. Когда пользователь нажимает кнопку, появляется меню с доступными типами сбоев, о которых можно сообщить. Отчеты, которые отправляют пользователи, обрабатываются Google и могут отображаться на карте для других пользователей Google Maps и 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);
Работа с пользовательскими интерфейсами навигации.
Если ваша реализация Navigation SDK включает настраиваемые элементы пользовательского интерфейса, вам необходимо учитывать элементы нарушения работы в реальном времени, чтобы избежать конфликтов.
Расположение кнопки отчета
По умолчанию кнопка отчета о сбоях расположена в нижнем конце/заднем углу карты — справа для языков с письмом слева направо и слева для языков с письмом справа налево. Если вам нужно переместить кнопку отчета, чтобы освободить место для пользовательских элементов пользовательского интерфейса, добавьте пользовательский элемент управленияBOTTOM_END_BELOW
или FOOTER
, который поднимет положение кнопки на экране. Размещение собственных пользовательских интерфейсов в настраиваемых элементах управления также гарантирует, что любые подсказки, отображаемые навигационным SDK, будут правильно наложены на ваши пользовательские элементы пользовательского интерфейса во время отображения. Если вы не можете использовать пользовательские элементы управления, используйте API-интерфейс Prompt Visibility для управления потенциальными конфликтами пользовательского интерфейса.API подсказки видимости (экспериментальный)
API Prompt Visibility помогает избежать конфликтов между элементами пользовательского интерфейса, созданными с помощью Navigation SDK, и вашими собственными настраиваемыми элементами пользовательского интерфейса, добавляя прослушиватель для получения обратного вызова перед появлением элемента пользовательского интерфейса Navigation SDK и сразу после его удаления. Вы можете получать обратные вызовы для элементов сбоя в режиме реального времени, включая информационные карточки, подсказки и меню отчетов о сбоях, а также для других уведомлений, созданных навигационным 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)