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.
Android Automotive OS tự động thêm nút Phát và Tắ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.
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.
- Thao tác ngữ nghĩa được đặt thành
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ộtRemoteInput
.
- Thao tác ngữ nghĩa được đặt thành
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ọisetMediaSession
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:
- Thuộc về
CATEGORY_CALL
- Đặt ý định toàn màn hình
- Được đánh dấu là đang diễn ra bằng cách sử dụng phương thức
setOngoing()
- Thuộc về
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ả | ||
---|---|---|---|---|
|
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. |
||
|
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ợ. |
||
|
Không hoạt động | Không hỗ trợ huy hiệu thông báo. | ||
| 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.
|
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ả |
---|---|---|
|
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:
|
|
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. |