Thông báo trên Android Automotive OS

Thông báo cung cấp cho người lái xe những thông tin ngắn gọn và kịp thời về các sự kiện từ ứng dụng khi không sử dụng. Thông báo có thể xuất hiện trong Trung tâm thông báo, một số thông báo cũng có thể xuất hiện dưới dạng thông báo quan trọng trên màn hình. Để tạo thông báo cho Android Automotive OS, bạn nên sử dụng chính API NotificationBuilder mà bạn dùng cho các thiết bị khác. Tuy nhiên, để góp phần đảm bảo an toàn cho người lái xe và giảm thiểu tình trạng phân tâm, một số phương thức và lớp API sẽ bị hạn chế hoặc hoạt động theo cách khác.

Điểm khác biệt của thông báo trong ô tô

Để tạo môi trường lái xe an toàn mà người lái xe không bị phân tâm, thông báo trên Android Automotive OS có những điểm khác biệt so với thông báo trên các thiết bị khác như sau:

  • Tương tác người dùng được đơn giản hoá
  • Các hạn chế về trải nghiệm người dùng dựa trên trạng thái lái xe

Tương tác người dùng được đơn giản hoá

Để góp phần đảm bảo rằng người lái xe có thể tập trung vào đường đi, thông báo trong xe có một mô hình tương tác người dùng được đơn giản hoá với các đặc điểm sau:

Không có các chế độ điều khiển phức tạp
Thông báo không được có chế độ điều khiển phức tạp, chẳng hạn như nhấn để mở rộng thông báo, nhấn và giữ thông báo để xem các tuỳ chọn bổ sung hoặc sử dụng chế độ điều khiển dựa trên cử chỉ vuốt.
Âm thanh thông báo
Thông báo chỉ phát âm thanh khi kích hoạt thông báo quan trọng.
Nút tự động phát và tắt tiếng đối với thông báo tin nhắn

Android Automotive OS tự động thêm nút PhátTắt tiếng cho mọi thông báo tin nhắn tương thích với ô tô.

  • Phát: Đọc thông báo cho người lái xe thông qua Trợ lý kỹ thuật số mặc định của người dùng (chẳng hạn như Trợ lý Google) hoặc hệ thống chuyển văn bản thành lời nói mặc định của xe.
  • Tắt tiếng: Ngăn thông báo quan trọng xuất hiện cho mọi tin nhắn tiếp theo của cuộc trò chuyện trong thời gian còn lại của chuyến đi. Thông báo tin nhắn từ cuộc trò chuyện bị tắt tiếng vẫn xuất hiện trong Trung tâm thông báo và người lái xe cũng có thể bật tiếng cho cuộc trò chuyện từ Trung tâm thông báo.

Tuỳ chọn hiển thị thông báo được đơn giản hoá

Không hỗ trợ RemoteViews và thành phần hiển thị nội dung tuỳ chỉnh. Ngoài ra, các kiểu thông báo sau đây không được hỗ trợ:

  • BigPictureStyle
  • BigTextStyle
  • InboxStyle

Nếu ứng dụng gửi thông báo đến Android Automotive OS bằng một trong các kiểu thông báo này, thì thông báo chỉ hiển thị văn bản tóm tắt.

Đơn giản hoá việc quản lý kênh thông báo

Android Automotive OS không hỗ trợ các kênh thông báo và những thuộc tính giao diện người dùng liên quan để giảm tải số lượng tác vụ quản lý đa dạng trong các thiết bị trên ô tô.

Các hạn chế về trải nghiệm người dùng dựa trên trạng thái lái xe

Android Automotive OS có Công cụ hạn chế trải nghiệm người dùng. Các nhà sản xuất ô tô có thể sử dụng công cụ này để hạn chế thông báo dựa trên trạng thái lái xe ô tô theo các cách sau:

  • Cắt bớt chuỗi thông báo theo độ dài ký tự cụ thể
  • Ẩn tóm tắt tin nhắn cho thông báo CATEGORY_MESSAGE
  • Giới hạn số lượng thông báo mà Trung tâm thông báo có thể hiển thị

Các loại tài nguyên được hỗ trợ

Theo mặc định, Android Automotive OS chỉ hỗ trợ một ít loại tài nguyên có thể dùng để thông báo trên các thiết bị khác. Những loại tài nguyên này bao gồm các loại sau:

  • Nội dung vẽ được
  • Biểu tượng
  • Images

Yêu cầu về khả năng tương thích cho thông báo tin nhắn

Để cung cấp trải nghiệm nhất quán và ít gây mất tập trung cho người dùng, thông báo tin nhắn phải tuân theo các yêu cầu đặc biệt trên Android Automotive OS.

Một thông báo tin nhắn có thể tương thích với ô tô nếu đáp ứng các yêu cầu sau:

  • Thuộc danh mục CATEGORY_MESSAGE.
  • Dùng kiểu chữ Notification.MessagingStyle.
  • Chỉ bao gồm tin nhắn chưa đọc.
  • Action đánh dấu là đã đọc đáp ứng các yêu cầu sau:

    • Thao tác ngữ nghĩa được đặt thành Action.SEMANTIC_ACTION_MARK_AS_READ.
    • Action cho biết nó sẽ không hiện giao diện người dùng nào khi kích hoạt.
  • Nếu thông báo có tính năng trả lời Action, thì Action cần đáp ứng các yêu cầu sau:

    • Thao tác ngữ nghĩa được đặt thành Action.SEMANTIC_ACTION_REPLY.
    • Action cho biết nó sẽ không hiện giao diện người dùng nào khi kích hoạt.
    • Action chứa một RemoteInput.

Trung tâm thông báo

Hầu hết thông báo đều xuất hiện trong Trung tâm thông báo, ngay cả khi những thông báo đó cũng đã được kích hoạt dưới dạng thông báo quan trọng. Thông báo vẫn tồn tại trong Trung tâm thông báo trong suốt khoảng thời gian lái xe.

Người lái xe có thể tương tác với thông báo trong Trung tâm thông báo. Tuỳ thuộc vào nhà sản xuất ô tô, người lái xe có thể truy cập vào Trung tâm thông báo bằng một hoặc cả hai cách sau:

  • Vuốt từ đầu màn hình xuống, tương tự như ngăn thông báo trên các thiết bị khác.
  • Nhấn vào một nút trong giao diện hệ thống.

Thông báo được gộp theo nhóm

Thông báo liên quan sẽ tự động được gộp theo nhóm trong Trung tâm thông báo, như trong ngăn thông báo trên các thiết bị khác. Tuy nhiên, khi người lái xe nhấn vào phần tóm tắt của một nhóm trong Trung tâm thông báo, thay vì chạy PendingIntent, nhóm đó sẽ mở rộng để hiển thị tất cả thông báo.

Thông báo không xuất hiện trong Trung tâm thông báo

Các thông báo sau không xuất hiện trong Trung tâm thông báo:

  • Thông báo Media playback. Thông tin về việc phát nội dung đa phương tiện đang diễn ra sẽ được Android Automotive OS thu thập và hiển thị ở một vị trí chuyên biệt trong giao diện người dùng. Lưu ý rằng bạn phải gọi setMediaSession bằng một mã thông báo không rỗng để thông báo được nhận dạng là Phát nội dung đa phương tiện.
  • Thông báo đi theo chỉ dẫn từng chặng cho CATEGORY_NAVIGATION.
  • Thông báo dịch vụ trên nền trước cho các ứng dụng đặc quyền của hệ thống và các ứng dụng được ký bằng khoá nền tảng có mức độ quan trọng thấp hơn IMPORTANCE_DEFAULT.

Thông báo quan trọng

Thông báo quan trọng xuất hiện dưới dạng thẻ thông báo ở đầu màn hình. Do thông báo quan trọng thu hút sự chú ý của người lái xe, nên các ứng dụng chỉ kích hoạt thông báo quan trọng khi thông tin đó là thiết yếu đối với hoạt động lái xe, có giới hạn thời gian và có thể xử lý. Chỉ một số loại thông báo mới có thể kích hoạt thông báo quan trọng.

Các nhà sản xuất ô tô có thể quyết định xem có cho phép thông báo quan trọng xuất hiện khi Trung tâm thông báo đang mở hay không.

Cách ứng dụng kích hoạt thông báo quan trọng

Mỗi ứng dụng cần đáp ứng nhiều yêu cầu để kích hoạt thông báo quan trọng, tuỳ thuộc vào việc ứng dụng đó có đặc quyền hệ thống hay không.

Ứng dụng đặc quyền của hệ thống và ứng dụng ký bằng khoá nền tảng
Ứng dụng này có thể kích hoạt một thông báo quan trọng bằng cách đặt tầm quan trọng của kênh thông báo thành IMPORTANCE_HIGH hoặc cao hơn.
Tất cả ứng dụng khác

Ứng dụng có thể kích hoạt một thông báo quan trọng bằng cách đặt tầm quan trọng của kênh thông báo thành IMPORTANCE_HIGH hoặc cao hơn và đảm bảo rằng thông báo thuộc một trong các danh mục sau:

Vòng đời của một thông báo quan trọng

Sau khi một ứng dụng kích hoạt thông báo quan trọng, thông báo đó sẽ xuất hiện ngay lập tức trên màn hình ô tô. Nếu người lái xe không làm gì, thông báo quan trọng sẽ tự động bị bỏ qua sau 8 giây, ngoại trừ các trường hợp sau:

  • Không thể bỏ qua thông báo quan trọng về một số cuộc gọi đến nhất định, thông báo quan trọng sẽ hiển thị cho đến khi người lái xe chấp nhận cuộc gọi hoặc cuộc gọi bị chấm dứt. Để đủ điều kiện trở thành thông báo quan trọng cho cuộc gọi đến không thể bỏ qua, thông báo phải đáp ứng các yêu cầu sau:

  • Thông báo quan trọng vẫn xuất hiện nếu ứng dụng cập nhật thông báo trong khung thời gian 8 giây.

Khi một thông báo quan trọng bị bỏ qua, thông báo đó sẽ xuất hiện trong Trung tâm thông báo, trừ khi đó là thông báo CATEGORY_NAVIGATION.

Các thay đổi và hạn chế của API thông báo đối với ô tô

Phần này tóm tắt sự khác biệt của từng lớp, theo đó API thông báo hoạt động theo cách khác nhau hoặc có các hạn chế đối với Android Automotive OS.

Notification.Builder

Bảng 1 và 2 mô tả các thay đổi và hạn chế đối của API trong lớp Notification.Builder.

Bảng 1. Các thay đổi đối với phương thức công khai cho lớp Notification.Builder

Phương thức công khai Hiệu ứng Nội dung mô tả

addAction()

Conditional no-op (không hoạt động có điều kiện) Thông báo về Notification.MessagingStyle phải bổ sung các thao tác được chỉ định trong yêu cầu về khả năng tương thích. Mọi thao tác bổ sung được thêm vào sẽ không được hiển thị dưới dạng nút Thông báo.

createBigContentView()

createContentView()

createHeadsUpContentView()

setContent()

setCustomBigContentView()

setCustomContentView()

setCustomHeadsUpContentView()

Không hoạt động RemoteViews và thành phần hiển thị nội dung tuỳ chỉnh không được hỗ trợ.

setBadgeIconType()

setNumber()

Không hoạt động Không hỗ trợ huy hiệu thông báo.

setChronometerCountDown()

setUsesChronometer()

Không hoạt động Không hỗ trợ đồng hồ đếm ngược.
setColorized() Đã thay đổi các quy tắc ràng buộc

Ứng dụng được ký trên nền tảng: có thể định cấu hình; được phép theo mặc định.

Ứng dụng đặc quyền của hệ thống: do nền tảng định cấu hình; không được phép theo mặc định.

Mọi ứng dụng khác: do nền tảng định cấu hình; không được phép theo mặc định.

setFullScreenIntent() Hành vi đã thay đổi Không tự động chạy ý định.
setLargeIcon() Hành vi đã thay đổi Biểu tượng lớn hiển thị ở bên phải thông báo.
setLights() Không hoạt động Thiết bị chạy Android Automotive OS không có đèn chỉ báo LED.
setOngoing() Hành vi đã thay đổi

Hành vi sẽ thay đổi khi thông báo đó cũng kích hoạt một thông báo quan trọng.

setOngoing() chỉ đặt thông báo quan trọng là không thể bỏ qua nếu đó là thông báo về cuộc gọi đến. Để đủ điều kiện trở thành thông báo quan trọng không thể bỏ qua cho cuộc gọi đến, thông báo phải đáp ứng setPublicVersion()

setVisibility()

Không hoạt động Không hỗ trợ chế độ riêng tư.
setSettingsText() Không hoạt động Thông báo không hỗ trợ thành phần liên kết đến các chế độ cài đặt ứng dụng. Người lái xe hãy truy cập vào phần cài đặt ứng dụng thông qua ứng dụng.
setTicker() Không hoạt động Không hỗ trợ ticker text (dòng văn bản đầu màn hình).

Bảng 2. Các thay đổi đối với nested class (lớp lồng nhau) cho Notification.Builder

Nested class Hiệu ứng Mô tả

Notification.BigPictureStyle

Notification.BigTextStyle

Notification.InboxStyle

Không được sử dụng Chỉ hiện văn bản tóm tắt. Hệ thống không hỗ trợ thông báo chi tiết cho các kiểu này.
Notification.BubbleMetadata Không được sử dụng Không hỗ trợ bong bóng.
Notification.MediaStyle Đã ẩn Đã ẩn các thông báo kiểu này. Android Automotive OS quản lý các lượt tương tác trên giao diện người dùng về việc phát và các thông báo của nội dung nghe nhìn.
Notification.MessagingStyle Hành vi đã thay đổi

Các thông báo kiểu này có những điểm khác biệt sau:

Notification.CarExtender

Notification.WearableExtender

Không được sử dụng Không hỗ trợ những phần mở rộng.

Notification.Action.Builder

Bảng 3 mô tả các thay đổi và quy định hạn chế đối với API trong lớp Notification.Action.Builder.

Bảng 3. Các thay đổi đối với phương thức công khai cho lớp Notification.Action.Builder

Phương thức công khai Hiệu ứng Nội dung mô tả
Public constructor (hàm dựng công khai) Hành vi đã thay đổi Biểu tượng được chỉ định trong hàm dựng công khai sẽ bị bỏ qua.
addRemoteInput Hành vi đã thay đổi Để giảm thiểu tình trạng phân tâm của người lái xe, Trợ lý kỹ thuật số (chẳng hạn như Trợ lý Google) sẽ thay người dùng nhập câu trả lời tin nhắn. Người dùng không thể nhập tin nhắn.
setAllowGeneratedReplies Không hoạt động Không hỗ trợ tính năng Trả lời thông minh.