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 hãy sử dụng chính API NotificationBuilder mà bạn dùng cho các thiết bị khác. Tuy nhiên, để đảm bảo an toàn cho người lái xe và giảm thiểu sự mất tập trung, 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á

Để đảm bảo rằng người lái xe có thể tập trung vào đường, 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ó 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 tất cả 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 phần 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 mức độ phổ biến của các nhiệm vụ quản lý nội dung đa dạng trong thiết bị của ô 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
  • Hình ảnh

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.
  • Sử dụng kiểu Notification.MessagingStyle.
  • Chỉ bao gồm những tin nhắn chưa đọc.
  • Action đánh dấu là đã đọc đáp ứng các yêu cầu sau:

    • Hành động semantic (ngữ nghĩa) phải được đặt thành Action.SEMANTIC_ACTION_MARK_AS_READ.
    • Action phải cho biết rằng khi kích hoạt hành động, thì sẽ không hiển thị bất kỳ giao diện người dùng nào.
  • 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:

    • Hành động semantic phải được đặt thành Action.SEMANTIC_ACTION_REPLY.
    • Action phải cho biết rằng khi kích hoạt hành động, thì sẽ không hiển thị bất kỳ giao diện người dùng nào.
    • Action phải chứa một RemoteInput duy nhất.

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

Các thông báo liên quan sẽ tự động được nhóm với nhau trong Trung tâm thông báo, tương tự 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 về việc phát nội dung nghe nhìn cho CATEGORY_TRANSPORT. Thông tin về việc phát nội dung nghe nhìn đang diễn ra sẽ được Android Automotive OS thu thập và hiển thị ở một vị trí chuyên dụng trong giao diện người dùng.
  • 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ỉ nên kích hoạt thông báo quan trọng khi thông tin đó quan trọng, hữu ích và chỉ có giá trị trong thời gian nhất định. 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 có cho phép thông báo quan trọng xuất hiện khi Trung tâm thông báo đang được 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ó các yêu cầu khác nhau để 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.

Đối với các ứng dụng đặc quyền của hệ thống và các ứng dụng được đăng ký bằng khoá nền tảng
Ứ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.
Đối với tất cả ứng dụng khác

Để kích hoạt thông báo quan trọng, ứng dụng sẽ đặt mức độ 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ì cả, thông báo quan trọng sẽ tự động bị loại bỏ sau 8 giây (có thể được nhà sản xuất ô tô điều chỉnh), 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ị loại bỏ, 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

Các bảng sau mô tả các thay đổi và hạn chế đối với 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 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 hạn chế

Ứng dụng được đăng 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: Được định cấu hình theo nền tảng; không được phép theo mặc định.

Tất cả ứng dụng khác: Được định cấu hình theo nền tảng; 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.

Chỉ cài đặt không thể bỏ qua cho thông báo quan trọng 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 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:

Người lái xe có thể bỏ qua tất cả các loại thông báo quan trọng khác.

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 thị 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 sau đây 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 Mô tả
Public constructor (hàm khởi tạo 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 người lái xe mất tập trung, Trợ lý kỹ thuật số (chẳng hạn như Trợ lý Google) sẽ nhập phản hồi tin nhắn cho người dùng. Người dùng không được phép 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.