Tạo thông báo Thông tin cập nhật trực tiếp

Hệ thống sẽ đề xuất thông báo về Thông tin cập nhật trực tiếp. Thông báo được quảng bá sẽ xuất hiện nổi bật hơn trên các giao diện hệ thống, bao gồm cả ở đầu ngăn thông báo và màn hình khoá, cũng như dưới dạng một chip trên thanh trạng thái.

Hình 1. Ví dụ về một thông báo Cập nhật trực tiếp.

Thẻ thông báo được đề xuất có các đặc điểm về hình thức sau:

  • Được mở rộng theo mặc định
  • Không thể thu gọn

Thông báo của bạn phải đáp ứng các yêu cầu sau để đủ điều kiện là thông báo cập nhật trực tiếp:

  • Phải là Standard/No Style, BigTextStyle, CallStyle hoặc ProgressStyle.
  • Phải yêu cầu quyền không phải trong thời gian chạy sau đây trong tệp kê khai android android.permission.POST_PROMOTED_NOTIFICATIONS.
  • Bạn phải yêu cầu khuyến mãi bằng cách sử dụng EXTRA_REQUEST_PROMOTED_ONGOING hoặc NotificationCompat.Builder#requestPromotedOngoing.
  • Phải là ongoing (đặt FLAG_ONGOING_EVENT).
  • Phải đặt contentTitle.
  • KHÔNG được đặt bất kỳ customContentView nào (không có RemoteViews).
  • KHÔNG được là nội dung tóm tắt của một nhóm sử dụng setGroupSummary.
  • KHÔNG được setColorized thành TRUE.
  • Kênh thông báo KHÔNG được có IMPORTANCE_MIN.

Đặc điểm của chương trình khuyến mãi

Các API sau đây giúp bạn xác định xem hệ thống có quảng bá thông báo của bạn hay không:

  • Notification.FLAG_PROMOTED_ONGOING cho biết liệu thông báo có được quảng bá hay không.
  • Notification.hasPromotableCharacteristics() xác thực xem hệ thống có thể nâng mức ưu tiên của thông báo hay không. Phương thức này không xem xét việc người dùng có tắt tính năng Cập nhật trực tiếp cho ứng dụng trong phần cài đặt hay không.
  • NotificationManager.canPostPromotedNotifications() kiểm tra xem ứng dụng của bạn có thể đăng thông báo được quảng bá hay không, ví dụ: nếu người dùng đã bật hoặc tắt thông báo đó trong phần cài đặt.
  • Settings.ACTION_MANAGE_APP_PROMOTED_NOTIFICATIONS là thao tác theo ý định cho phép các ứng dụng chuyển người dùng đến phần Cài đặt để bật tính năng này.

Tiêu chí sử dụng

Sử dụng tính năng Cập nhật trực tiếp cho các hoạt động đang diễn ra, do người dùng bắt đầu và nhạy cảm về thời gian.

Đang diễn ra

Thông tin cập nhật trực tiếp phải thể hiện một hoạt động đang diễn ra, có thời gian bắt đầu và kết thúc riêng biệt. Nếu một hoạt động diễn ra trong quá khứ, đừng sử dụng Live Update. Thay vào đó, hãy sử dụng một thông báo tiêu chuẩn. Điều này cũng áp dụng cho những sự kiện chưa bắt đầu, mặc dù những sự kiện sắp bắt đầu có thể sử dụng tính năng Cập nhật trực tiếp.

Thông tin cập nhật trực tiếp thể hiện các hoạt động đang diễn ra. Không dùng tính năng Cập nhật trực tiếp để cung cấp quyền truy cập nhanh vào chức năng của ứng dụng. Nếu muốn làm việc này, hãy dùng một tiện ích ứng dụng hoặc ô Cài đặt nhanh tuỳ chỉnh.

  • Các trường hợp sử dụng phù hợp: Chỉ đường, cuộc gọi điện thoại đang diễn ra, tính năng theo dõi chuyến đi chung đang hoạt động và tính năng theo dõi hoạt động giao đồ ăn đang diễn ra.
  • Sử dụng không phù hợp: Quảng cáo, chương trình khuyến mãi, tin nhắn trò chuyện, cảnh báo, sự kiện sắp tới trên lịch và lối tắt truy cập nhanh vào các tính năng của ứng dụng.

Do người dùng bắt đầu

Hầu hết các bản Cập nhật trực tiếp đều phải thể hiện những hoạt động do người dùng kích hoạt một cách rõ ràng, chẳng hạn như bắt đầu tập luyện, bắt đầu chỉ đường lái xe hoặc gọi xe đi chung. Không hiển thị thông tin xung quanh, chẳng hạn như thông tin về môi trường, mối quan tâm hoặc sự kiện sắp diễn ra của người dùng, trong một Thông tin cập nhật trực tiếp. Không cho phép các hoạt động do các bên khác kích hoạt tạo ra Thông tin cập nhật trực tiếp.

Đôi khi, người dùng có thể thực hiện một hành động bắt đầu một hoạt động trong một khoảng thời gian nào đó trong tương lai. Ví dụ: nếu người dùng mua vé máy bay hoặc vé xem buổi hoà nhạc, đăng ký tham gia một giải đấu hoặc cho biết họ sẽ tham dự một sự kiện nhạy cảm về thời gian trong tương lai. Trong những trường hợp này, bạn có thể tự động hiển thị một Bản cập nhật trực tiếp khi sự kiện đã lên lịch bắt đầu. Tuy nhiên, các ứng dụng phải điều chỉnh các điều kiện kích hoạt để chỉ xuất hiện khi hoạt động sắp diễn ra. Nếu người dùng cho biết rõ ràng rằng họ muốn bắt đầu theo dõi một sự kiện diễn ra ở chế độ nền, chẳng hạn như một trận đấu thể thao, thì bạn có thể bắt đầu đăng Thông tin cập nhật trực tiếp cho sự kiện đó. Tuy nhiên, bạn cũng nên thêm thao tác Huỷ ghim vào thông báo liên kết.

Sản phẩm có thể hết hạn sử dụng

Chỉ hiển thị Thông tin cập nhật trực tiếp nếu thông tin đó đòi hỏi người dùng phải chú ý trong suốt hoạt động. Một trường hợp sử dụng chính của tính năng Cập nhật trực tiếp là giám sát, khi người dùng nhận được lợi ích đáng kể từ việc xem nhanh thông tin Cập nhật trực tiếp để theo dõi trạng thái đang diễn ra của hoạt động.

Thông báo cập nhật trực tiếp thường phù hợp với những hoạt động chuyển đổi giữa Thông báo cập nhật trực tiếp và thông báo thông thường. Ví dụ: việc hiển thị thông báo thẻ lên máy bay là phù hợp nhiều giờ trước khi người dùng bay, nhưng thông báo đó chỉ nên trở thành Thông tin cập nhật trực tiếp khi người dùng có nhu cầu cấp thiết, chẳng hạn như khi họ đã đến sân bay hoặc địa điểm hoặc khi quá trình lên máy bay đã bắt đầu. Ngược lại, Thông tin cập nhật trực tiếp không phù hợp để theo dõi gói hàng vì người dùng không cần liên tục theo dõi thông tin này.

Khối trạng thái

Status chip (thẻ trạng thái) giúp người dùng theo dõi Thông tin cập nhật trực tiếp khi không nhìn thấy thông báo. Sử dụng setShortCriticalText hoặc setWhen để truyền tải thông tin quan trọng về trạng thái liên quan đến thông báo tập trung vào tiến trình.

khối trạng thái có biểu tượng
Hình 2. Trạng thái không xác định sẽ hiển thị biểu tượng nhỏ Notification.Builder#setSmallIcon.
khối trạng thái có thời gian
Hình 3. Sử dụng Notification.Builder#setShortCriticalText để cho biết thời gian tuyệt đối.
khối trạng thái có thông tin
Hình 4. Sử dụng Notification.Builder#setShortCriticalText để truyền tải thông tin quan trọng.

Khi thời gian

Thời gian khi nào sẽ kích hoạt một quy trình đếm ngược cho thời gian tồn tại của thông báo, trừ phi thông báo bị loại bỏ hoặc cập nhật.

  • Thời gian khi ít nhất là 2 phút trong tương lai: nếu thời gian hiện tại là 10:05 và thời gian khi được đặt thành 10:10, thì chip sẽ cho biết "5 phút".
  • Nếu thời gian "when" (khi) cách đây hơn 1 phút, thì thông báo sẽ không xuất hiện.
  • Sử dụng setShowWhen để FALSE nếu bạn không muốn thông báo xuất hiện trong ngăn có thời gian.

Giao diện của khối trạng thái

Khối trạng thái luôn có biểu tượng và có thể có thêm văn bản (không bắt buộc). Mảnh có chiều rộng tối đa là 96 dp. Hiện văn bản tuỳ thuộc vào các tiêu chí sau:

  • Nếu ít hơn 7 ký tự, hãy hiện toàn bộ văn bản.
  • Nếu chưa đến một nửa văn bản sẽ hiển thị, hãy chỉ cho thấy biểu tượng.
  • Nếu hơn một nửa văn bản sẽ hiển thị, hãy hiển thị nhiều văn bản nhất có thể.

Đóng

Người dùng có thể kiểm soát chế độ hiển thị thông báo trong ngăn thông báo. Việc đăng Thông tin cập nhật trực tiếp không mong muốn có thể khiến người dùng thu hồi quyền đăng bài của ứng dụng.

Để ngăn người dùng tắt hoàn toàn tính năng Thông tin cập nhật trực tiếp, hãy tránh đăng những thông tin cập nhật mà người dùng có thể đóng. Đừng đăng lại Thông tin cập nhật trực tiếp mà người dùng đã đóng. Sử dụng setDeleteIntent để phát hiện các bản cập nhật bị loại bỏ.

Hãy xem ứng dụng mẫu để thử nghiệm các API này.