Выберите платформу: Android iOS.

Настройка сбоев в реальном времени

Сбои в режиме реального времени — это набор функций, которые предупреждают пользователей о сбоях на их маршруте и позволяют пользователям сообщать и проверять сбои, с которыми они сталкиваются. Примеры сбоев включают дорожно-транспортные происшествия, пробки на дорогах, присутствие полиции и камер контроля скорости, строительные работы, перекрытие полос движения и определенные погодные условия. На этой странице описаны функции прерывания работы в режиме реального времени и параметры их конфигурации, включая рекомендации для приложений, использующих настраиваемые пользовательские интерфейсы навигации.

Функции сбоев в режиме реального времени

Навигационный 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)