Lựa chọn về múi giờ

Hiển thị thời gian chính xác là một tính năng cốt lõi mà người dùng mong đợi ở hệ thống thông tin giải trí trên ô tô. Mặc dù việc này có vẻ đơn giản, đặc biệt là khi bạn phải đáp ứng các kỳ vọng thấp về việc quản lý thời gian và múi giờ, nhưng thời gian sẽ nhanh chóng trở nên phức tạp khi bạn phải hiển thị ngày và giờ chính xác một cách đáng tin cậy mà không cần can thiệp thủ công.

Tất cả đồng hồ theo thời gian thực thường được dùng trong hệ thống trên chip (SoC) đều có một số sai số tích luỹ theo thời gian và có thể dẫn đến lỗi đáng kể nếu không được khắc phục. Ngoài ra, vì người dùng mong muốn giờ địa phương hiển thị chính xác, nên bạn phải xem xét độ lệch chính xác so với giờ phối hợp quốc tế (UTC).

Thông tin về múi giờ cũng như việc áp dụng Giờ mùa hè (DST) có thể thay đổi trong thời gian hoạt động dự kiến của một xe. Ví dụ: sau nhiều năm triển khai giờ mùa hè, Brazil đã chọn không bắt đầu lịch giờ mùa hè vào năm 2019.

Android cung cấp cơ sở hạ tầng cần thiết để đàm phán các chức năng quản lý quy tắc múi giờ. Để biết thông tin chi tiết, hãy xem phần Quy tắc múi giờ. Quy tắc này cho phép nhà sản xuất thiết bị gốc đẩy dữ liệu quy tắc múi giờ đã cập nhật đến các thiết bị mà không cần cập nhật hệ thống. Cơ chế này cho phép:

  • Người dùng nhận được bản cập nhật kịp thời (giúp kéo dài thời gian hữu ích của thiết bị Android).
  • Nhà sản xuất thiết bị gốc (OEM) có thể kiểm thử bản cập nhật múi giờ độc lập với bản cập nhật hình ảnh hệ thống.

Lưu ý: AAOS 10 không hỗ trợ cơ chế cập nhật mô-đun dựa trên APEX được cung cấp trong các bản phát hành của Android 10 (trở lên).

Lưu ý: Để triển khai cơ chế này, bạn phải khởi động lại hệ thống.

Nguồn thông tin về thời gian (múi giờ) trong ô tô

Thiết bị Android quản lý thời gian theo thời gian Unix ở cấp hệ thống, áp dụng độ lệch múi giờ mong muốn, sau đó chuyển đổi giá trị thành giờ địa phương để hiển thị cho người dùng. Mã vùng của người dùng hiện tại (thường được gọi là mã Olson) được lưu trữ dưới dạng chế độ cài đặt. Ví dụ: Châu Âu/London.

Phần lớn cơ chế được nêu dưới đây mô tả thông tin thời gian. Mục đích của các tiêu chuẩn này là cung cấp cho người dùng thời gian hiện tại, chứ không phải mô tả các quy tắc múi giờ hiện hành. Để xác định múi giờ thực tế, thiết bị phải xem xét các yếu tố như quốc gia, độ lệch và độ lệch giờ mùa hè trước khi đặt mã múi giờ.

Quá trình này có thể là một thách thức. Việc truy xuất dựa trên thông tin hiện có có thể không rõ ràng. Ví dụ: quy tắc múi giờ America/Denver tuân theo giờ mùa hè nhưng áp dụng giờ mùa hè của vùng núi (MDT) vào mùa hè, trong khi America/Phoenix tiếp tục nhận dạng MDT.

Đài phát thanh di động

Thông tin hệ thống (SI) là một khía cạnh thiết yếu của giao diện vô tuyến Long-Term Evolution (LTE), được truyền bởi trạm gốc (BS) qua kênh điều khiển truyền tin (BCCH). 3GPP TS 36.331 chỉ định SystemInformationBlockType16 (SIB16) chứa thông tin liên quan đến GPS và Giờ phối hợp quốc tế (UTC), độ lệch giờ địa phương cũng như thông tin về giờ mùa hè.

Bạn có thể tìm thấy chức năng tương tự trong 2G và 3G, nơi có thể truyền thông tin về mã nhận dạng mạng và múi giờ (NITZ) (xem 3GPP TS 22.042 để biết thông tin chi tiết). Các tiêu chuẩn khác về đài phát thanh di động có các tính năng tương đương.

Rất tiếc, điểm chung của hầu hết các tiêu chuẩn là việc gửi thông tin này là không bắt buộc, vì vậy, thông tin này không có trên tất cả các mạng.

Ưu điểm Nhược điểm
  • Cung cấp hầu hết thông tin mong muốn (nếu có).
  • Tính đơn giản, Android đã hỗ trợ khi đài phát thanh di động được hiển thị dưới dạng điện thoại, không chỉ là modem dữ liệu.
  • Không cần kết nối Internet.
  • Không đảm bảo rằng thông tin được truyền tin cũng như trạm gốc được định cấu hình đúng cách.

  • Ở các khu vực biên giới, có thể nhận được tín hiệu của tháp di động (roaming) từ một quốc gia lân cận và có thể truyền sai múi giờ.

  • Ở một số vị trí, quá trình cập nhật có thể mất vài giờ, thậm chí vài ngày.

Giao thức thời gian mạng

Giao thức thời gian mạng (NTP) thường được dùng để lấy thông tin thời gian Unix tương đối chính xác. Android hỗ trợ đồng bộ hoá thời gian hệ thống với thời gian của máy chủ NTP nếu có thể hiển thị cho các ứng dụng của RadioManager thông qua siêu dữ liệu RadioTuner.getParameters() chung. NTP cập nhật thời gian hệ thống khi thời gian này không đồng bộ và nhà mạng gần đây chưa cung cấp bản cập nhật NITZ. Nếu người dùng bật AUTO_TIME khi không có NITZ, hệ thống sẽ kiểm tra ngay thời gian mạng.

Ưu điểm Nhược điểm

Tính đơn giản, được Android hỗ trợ.

  • Chưa hoàn chỉnh, NTP chỉ cung cấp một giá trị cần thiết (thời gian). Ngay cả trong trường hợp tốt nhất, NTP cũng không thể cung cấp múi giờ.

  • Cần có kết nối Internet.

Bộ thu phát thanh truyền hình

Mặc dù việc tận dụng bộ điều chỉnh tích hợp để truy xuất thông tin về thời gian và múi giờ là rất hấp dẫn, nhưng cũng có những thách thức. Có nhiều tiêu chuẩn phát sóng qua đài phát thanh xác định các tuỳ chọn để hiển thị thông tin mong muốn. Nói chung, bộ thu sóng truyền thanh cung cấp thông tin giống như đài phát thanh di động.

ETSI EN 300 401 V1.4.1 (2006-06), mục 8.1 chỉ định các tính năng thông tin dịch vụ cung cấp thông tin bổ sung về các dịch vụ cho cả chương trình âm thanh và dữ liệu cho hệ thống Truyền dẫn âm thanh kỹ thuật số (DAB). Mục 8.1.3 xác định định dạng cho thời gian và ngày cũng như thông tin về quốc gia và chênh lệch giờ địa phương.

Tương tự, đối với Hệ thống dữ liệu radio (RDS) thường được triển khai trong bộ thu FM, mục 3.1.5.6 của tiêu chuẩn EN 50067 xác định định dạng cho thời gian đồng hồ và dữ liệu (được truyền một lần mỗi phút). Ngoài ra, bạn cũng có thể truy xuất mã quốc gia mở rộng (ECC) trong thông tin nhận dạng chương trình được truyền.

HD Radio chứa các tuỳ chọn tương ứng trong thông số kỹ thuật HD Radio™ Air Interface Design Description Station Information Service Transport (Mô tả thiết kế giao diện không dây HD Radio, Dịch vụ thông tin trạm truyền tải) trong Thông báo tham số Dịch vụ thông tin trạm (SIS) (Mã thông báo 0111). Phần 5 nêu rõ các từ cảnh báo cần lưu ý khi cố gắng sử dụng tính năng hỗ trợ đồng hồ của thông báo truyền tin. Nguyên tắc tương tự cũng áp dụng cho các hệ thống khác:

... những dữ liệu này mô tả tuỳ chỉnh cục bộ tại vị trí của đài truyền hình, có thể giống hoặc không giống với tuỳ chỉnh cục bộ tại vị trí của người nhận. Gần ranh giới múi giờ, người dùng có thể nhận được nhiều đài cung cấp dữ liệu khác nhau. Do đó, những dữ liệu này chỉ được cung cấp dưới dạng gợi ý, việc diễn giải và sử dụng dữ liệu này là tuỳ ý, thuộc quyền kiểm soát của khách hàng. ..."

Ngoài ra, ít nhất đối với HD Radio, việc truyền thông tin này là không bắt buộc và bạn không nên chỉ dựa vào thông tin này.

Ưu điểm Nhược điểm
  • Thường có trên nhiều tiêu chuẩn phát thanh truyền hình theo khu vực.
  • Không cần kết nối Internet.
  • Android không hỗ trợ tính năng này ngay từ đầu.
  • Yêu cầu bật bộ dò tín hiệu (ít nhất là thỉnh thoảng ở chế độ nền) để phát hiện thông tin một cách đáng tin cậy.
  • Độ tin cậy phụ thuộc vào đài truyền hình.

Mẹo triển khai

Android hỗ trợ đồng bộ hoá thời gian hệ thống với thời gian của máy chủ NTP nếu thời gian đó có thể được hiển thị cho các ứng dụng của RadioManager. Giải pháp đề xuất là tận dụng tính năng tiện ích của nhà cung cấp. Việc triển khai chức năng này phải diễn ra trong lớp trừu tượng phần cứng (HAL), sau đó, nếu có thể hiển thị cho các ứng dụng của RadioManager thông qua phương thức RadioTuner.getParameters() chung.

Để giải pháp luôn mạnh mẽ, người dùng tiện ích của nhà cung cấp này phải xác định rằng HAL hỗ trợ tính năng này (đừng giả định tính năng này tồn tại). Chuỗi tham số cho lệnh gọi getParameters phải được sắp xếp gọn gàng để sử dụng rõ ràng trên các nhà cung cấp. Ví dụ: sử dụng không gian tên của tổ chức bằng cách thêm tiền tố là miền thích hợp, chẳng hạn như com.me.timezoneTuner.currenttimezone.

Do bản chất của thông tin là do sự kiện điều khiển, nên bạn nên sử dụng lệnh gọi lại RadioTuner.Callback.onParametersUpdated() để nhận thông tin này. Nếu bạn có thể định cấu hình cơ sở này, hãy thiết kế một tập hợp các quy trình tuỳ chỉnh trên setParameters. Ví dụ:

com.me.timezoneTuner.currenttimezoneEvent.enable

Hệ thống định vị toàn cầu (GNSS) chỉ có thể cung cấp thông tin thời gian và vị trí chính xác.

Vị trí địa lý

Giải pháp cho sự bất tiện này là thực thi tính năng mã hoá địa lý đảo ngược và xác định quốc gia và múi giờ bằng cách tra cứu dựa trên vị trí. GNSS là lựa chọn rõ ràng (và chất lượng tốt nhất) về thông tin vị trí trong xe. API Múi giờ của Google cung cấp mọi thông tin cần thiết để chạy lượt chuyển đổi bắt buộc. Tất nhiên, bạn cần có kết nối Internet. Việc đảm bảo quyền riêng tư của người dùng phải là ưu tiên hàng đầu khi triển khai giải pháp trực tuyến! Bạn phải yêu cầu và nhận được quyền của người dùng để chấp nhận (hoặc không chấp nhận) chi phí sử dụng dữ liệu.

Bạn có thể tạo một giải pháp phù hợp để sử dụng khi không có mạng. Một cơ sở dữ liệu bản đồ cục bộ có độ phân giải đủ để xác định chính xác quốc gia và múi giờ có thể vừa với bộ nhớ của xe. Với thông tin này và chiến lược được triển khai đầy đủ để cập nhật thông tin về múi giờ (và quốc gia) khi cần, người dùng có thể đảo ngược mã địa lý của quốc gia/múi giờ dựa trên vị trí GNSS thu được từ hệ thống con Vị trí.

Ưu điểm Nhược điểm
  • Có thể xác định chính xác múi giờ.
  • Không cần kết nối Internet (trong trường hợp DB cục bộ).
  • Hoạt động ổn định trong hầu hết các tình huống lái xe.
  • Android không hỗ trợ tính năng này ngay từ đầu.
  • Nếu xe ở trong nhà/khu vực có mái che, nơi không thể thu sóng vệ tinh GNSS tốt trong quá trình định cấu hình ban đầu, thì bạn sẽ không thể nhận được thông tin chính xác về thời gian, vị trí và múi giờ.
  • Cơ sở dữ liệu cục bộ cần có cơ chế cập nhật.
  • Mức độ phức tạp khi triển khai.

Điện thoại được kết nối qua Bluetooth, Wi-Fi hoặc USB

Bạn có thể sử dụng một số công nghệ để tận dụng điện thoại của người dùng nhằm thu thập dữ liệu về thời gian và múi giờ. Đối với tất cả điện thoại, bạn phải cài đặt một cặp ứng dụng tuỳ chỉnh và ứng dụng đồng hành trên điện thoại trên hệ thống Thông tin giải trí trên ô tô (IVI). Sau đó, bạn có thể đồng bộ hoá thời gian theo khoảng thời gian mong muốn. Ví dụ: khi thiết lập kết nối và khi điện thoại phát hiện một múi giờ mới.

Một số điện thoại hỗ trợ Bluetooth năng lượng thấp (BLE) cung cấp tuỳ chọn truy xuất thời gian thông qua tính năng Thời gian hiện tại GATTThông số kỹ thuật hồ sơ dịch vụ Thời gian hiện tại 1.1. Tuy nhiên, lựa chọn này không giải quyết được một phân khúc thị trường đủ lớn để có thể dựa vào đó.

Ưu điểm Nhược điểm
  • Không cần kết nối Internet.
  • Các thay đổi về múi giờ do điện thoại phát hiện có thể được chuyển tiếp đến đầu phát trung tâm.
  • Android không hỗ trợ tính năng này ngay từ đầu.
  • Chỉ hoạt động khi điện thoại được kết nối với đầu phát trung tâm.
  • Thời gian tốt hay xấu tuỳ thuộc vào thông tin mà điện thoại cung cấp.
  • Việc triển khai rất phức tạp.
  • Không phải điện thoại nào cũng hỗ trợ hồ sơ Dịch vụ thời gian hiện tại BLE GATT.

Sử dụng nguồn

Mỗi nhà cung cấp thiết bị phải xác định mức độ cao của thanh và hành trình người dùng nào được coi là quan trọng nhất. Chỉ khi hiểu rõ những trải nghiệm quan trọng mà người dùng mong muốn, bạn mới có thể đưa ra quyết định tốt nhất. Trong hầu hết các trường hợp, nhà cung cấp phải cân nhắc giữa sự tiện lợi và độ phức tạp khi triển khai.

Mỗi lựa chọn được mô tả ở trên đều có ưu điểm và nhược điểm. Ví dụ: bạn phải đưa ra một lựa chọn thiết kế quan trọng liên quan đến mức độ phục hồi (so với việc hiển thị thời gian không chính xác đôi khi) được chấp nhận và cách quản lý các nhược điểm. Một giải pháp hoàn toàn tự động có thể hoạt động tốt trong mọi trường hợp, nhưng phải dựa trên sự kết hợp của một số nguồn thông tin. Không có phương án nào có thể cung cấp 100% tình trạng còn phòng.

Lựa chọn cấu hình thủ công dưới dạng phương án dự phòng tạm thời rất dễ thực thi và trong thực tế, có thể là lựa chọn phù hợp với nhiều người dùng.