Точное отображение времени — одна из ключевых функций, ожидаемых от автомобильной информационно-развлекательной системы. Хотя это может показаться обманчиво простым, особенно когда требования к управлению временем и часовыми поясами невысоки и требуют соблюдения, управление временем быстро становится сложным, когда требуется точное отображение даты и времени без ручного вмешательства.
Все часы реального времени, обычно используемые в системах на кристалле (SoC), имеют некоторый дрейф, который накапливается со временем и может привести к значительной погрешности, если его не корректировать. Кроме того, поскольку от точности отображения местного времени ожидают высокого уровня, необходимо учитывать корректное смещение относительно всемирного координированного времени (UTC).
Информация о часовых поясах, а также правила применения летнего времени (DST) могут измениться в течение предполагаемого срока службы транспортного средства. Например, после многих лет перехода на летнее время Бразилия решила не вводить график перехода на летнее время в 2019 году.
Android предоставляет инфраструктуру, необходимую для решения сложных задач управления правилами часовых поясов. Подробнее см. в разделе «Правила часовых поясов» . Она позволяет OEM-производителям передавать обновлённые данные правил часовых поясов на устройства без необходимости обновления системы. Этот механизм обеспечивает:
- Пользователи смогут получать своевременные обновления (которые продлевают срок службы Android-устройства).
- Производители оригинального оборудования будут тестировать обновления часовых поясов независимо от обновлений образа системы.
Примечание: AAOS 10 не поддерживает механизм обновления модулей на базе APEX, представленный в версиях Android 10 (и более поздних).
Примечание: для реализации этого механизма требуется перезагрузка системы.
Источники информации о времени (поясе) в автомобилях
Устройства Android управляют временем в формате Unix на системном уровне, применяют необходимое смещение часового пояса и затем преобразуют значение в местное время для отображения пользователям. Идентификатор часового пояса текущего пользователя (часто называемый идентификатором Олсона) хранится в качестве параметра. Например, Европа/Лондон .
Большая часть описанного ниже механизма описывает информацию о времени. Цель этих стандартов — предоставить пользователям текущее время, а не описать применимые правила часовых поясов. Для определения фактического часового пояса устройство должно учитывать такие факторы, как страна, смещение и смещение летнего времени, прежде чем устанавливать идентификатор часового пояса.
Этот процесс может быть сложным. Обратный отсчёт на основе имеющейся информации может быть неоднозначным. Например, правило часового пояса «Америка/Денвер» предполагает летнее время, но летом переходит на горное летнее время (MDT), тогда как «Америка/Феникс» продолжает использовать MDT.
Сотовая радиосвязь
Системная информация (SI) является важным аспектом радиоинтерфейса Long-Term Evolution (LTE), который передается базовой станцией (BS) по каналу управления вещанием (BCCH). 3GPP TS 36.331 определяет тип блока системной информации SystemInformationBlockType16 (SIB16), который содержит информацию, связанную с GPS и всемирным координированным временем (UTC), смещением местного времени, а также информацию о переходе на летнее время.
Аналогичная функциональность присутствует в сетях 2G и 3G, где возможна передача информации о сетевом идентификаторе и часовом поясе (NITZ) (подробнее см. 3GPP TS 22.042). Другие стандарты сотовой связи обладают аналогичными функциями.
К сожалению, общим для большинства стандартов является то, что отправка этой информации является необязательной, поэтому она не доступна повсеместно во всех сетях.
| Плюсы | Минусы |
|---|---|
|
|
Сетевой протокол времени
Сетевой протокол времени (NTP) часто используется для получения относительно точной информации о времени эпохи Unix. Android поддерживает синхронизацию своего системного времени с временем NTP-сервера, если эта информация доступна клиентам RadioManager через общие метаданные RadioTuner.getParameters() . NTP обновляет системное время, если оно рассинхронизировано, а оператор связи не предоставлял обновления NITZ в последнее время. Если пользователь включает AUTO_TIME , когда NITZ недоступен, система немедленно проверяет сетевое время.
| Плюсы | Минусы |
|---|---|
Простота, поддерживаемая Android. |
|
Трансляционный радиотюнер
Использование встроенного тюнера для получения информации о времени и часовом поясе, безусловно, привлекательно, но и сопряжено с определенными сложностями. Многочисленные стандарты радиовещания определяют варианты предоставления необходимой информации. Как правило, тюнер для вещательного радио предоставляет ту же информацию, что и сотовый радиоприёмник.
ETSI EN 300 401 V1.4.1 (2006-06), section 8.1 specifies service information features that provide supplementary information about services for both audio programme and data for Digital Audio Broadcasting (DAB) systems. Section 8.1.3 defines the format for time and date as well as information for country and local time offset.
Аналогично, для системы радиоданных (RDS), обычно реализуемой в FM-тюнерах, раздел 3.1.5.6 стандарта EN 50067 определяет формат времени и данных (передаваемых один раз в минуту). Кроме того, расширенный код страны (ECC) также может быть получен как часть идентификации передаваемой программы.
HD Radio содержит соответствующие опции в спецификации «Описание конструкции радиоинтерфейса HD Radio™» в сообщении параметров службы информации о станции (SIS) (MSG ID 0111). В разделе 5 чётко изложены предостережения, которые следует учитывать при использовании тактовой поддержки вещания. Аналогичная истина применима и к другим системам:
| ... эти данные описывают местные обычаи в месте нахождения вещателя, которые могут совпадать или не совпадать с местными обычаями в месте нахождения получателя. Вблизи границ часовых поясов потребители могут принимать множество станций, предоставляющих различные данные. Поэтому эти данные предоставляются лишь в качестве рекомендаций, интерпретация и использование которых должны осуществляться по усмотрению потребителя и под его контролем. ... |
Кроме того, по крайней мере для HD Radio, трансляция этой информации является необязательной и не следует полагаться исключительно на нее.
- Обычно доступно в различных региональных стандартах радиовещания.
- Не требует подключения к Интернету.
- Android не поддерживает эту функцию изначально.
- Для надежного обнаружения информации требуется включение тюнера (по крайней мере иногда в фоновом режиме).
Надежность зависит от вещателя.
Советы по внедрению
Android поддерживает синхронизацию своего системного времени с NTP-сервером, если она доступна клиентамRadioManager . Рекомендуемое решение — использовать функцию расширения поставщика. Реализация этой функции должна осуществляться на уровне аппаратной абстракции (HAL), после чего она может быть доступна клиентам RadioManager через универсальный метод RadioTuner.getParameters() . Чтобы решение оставалось надёжным, пользователь этого расширения поставщика должен убедиться, что HAL поддерживает эту функцию (не предполагайте её наличие). Строки параметров для вызова getParameters должны быть чётко организованы для однозначного использования разными поставщиками. Например, используйте пространство имён вашей организации, добавив к нему префикс с соответствующим доменом, например, com.me.timezoneTuner.currenttimezone .
Учитывая событийный характер информации, может быть полезно использовать функцию обратного вызова RadioTuner.Callback.onParametersUpdated() для получения этой информации. Если эта возможность должна быть настраиваемой, разработайте набор пользовательских процедур на основе setParameters . Например:
com.me.timezoneTuner.currenttimezoneEvent.enable
Глобальная навигационная спутниковая система
Сама по себе глобальная навигационная спутниковая система (ГНСС) может предоставить только точную информацию о времени и местоположении.
Геолокация
Решение этой проблемы — выполнить обратное геокодирование и определить страну и часовой пояс, выполнив поиск по местоположению. GNSS — очевидный (и наиболее качественный) способ получения информации о местоположении в транспортном средстве. API часовых поясов Google предоставляет всё необходимое для выполнения необходимого преобразования. Конечно, требуется подключение к Интернету. Обеспечение конфиденциальности пользователей должно быть главным приоритетом при реализации онлайн-решения! Требуется разрешение пользователя на принятие (или отказ) оплаты за использование данных, которое должно быть запрошено.
Возможно создание подходящего решения для использования в автономном режиме. База данных локальных карт с достаточным разрешением для точного определения страны и часового пояса может поместиться в хранилище транспортного средства. Благодаря этому, а также полностью реализованной стратегии обновления информации о часовом поясе (и стране) по мере необходимости, можно выполнить обратное геокодирование страны/часового пояса на основе данных GNSS, полученных от подсистемы определения местоположения.
| Плюсы | Минусы |
|---|---|
|
|
Телефон подключен через Bluetooth, Wi-Fi или USB
Для получения данных о времени и часовом поясе с телефона пользователя можно использовать несколько технологий. Для всех телефонов необходимо установить пару пользовательских приложений и сопутствующих приложений на телефон и в автомобильную информационно-развлекательную систему (IVI). Это позволит синхронизировать время с желаемым интервалом. Например, при установлении соединения и при обнаружении телефоном нового часового пояса.
Некоторые телефоны с поддержкой Bluetooth Low Energy (BLE) предоставляют возможность получения времени с помощью характеристики текущего времени GATT и спецификации профиля службы текущего времени 1.1 . Однако эта опция не охватывает достаточно большой сегмент рынка, чтобы полагаться исключительно на неё.
| Плюсы | Минусы |
|---|---|
|
|
Использовать источники
Каждый производитель устройств должен определить, насколько высокую планку он должен установить и какие действия пользователя считать наиболее важными. Только чёткое понимание желаемого критически важного пользовательского опыта позволяет принять оптимальное решение. В большинстве случаев производителям приходится искать компромисс между удобством и сложностью реализации.
Каждый из описанных выше вариантов имеет свои преимущества и недостатки. Например, необходимо сделать критически важный выбор при проектировании, учитывая приемлемый уровень устойчивости к случайным сбоям отображения времени и способы устранения недостатков. Полностью автоматическое решение, которое может эффективно работать во всех сценариях, должно основываться на сочетании нескольких источников информации. Ни один вариант в отдельности не может обеспечить 100% доступность.
Возможность ручной настройки в качестве временного запасного варианта легко реализуема и на практике может оказаться достаточной для многих пользователей.