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

Hệ thống quảng bá thông báo Cập nhật trực tiếp. Thông báo được quảng bá xuất hiện nổi bật hơn trên các nền tảng 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 khối trong thanh trạng thái.

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

Thẻ thông báo được quảng bá có các đặc điểm về giao diện sau:

  • 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à bản cập nhật trực tiếp:

  • Phải là Chuẩn/Không có kiểu, 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.
  • Phải yêu cầu quảng bá bằ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 customContentView (không có RemoteViews).
  • Phải KHÔNG là bản tóm tắt của một nhóm sử dụng setGroupSummary.
  • 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ể quảng bá 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à hành động theo ý định cho phép ứng dụng đưa 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 khởi tạo và nhạy cảm với thời gian.

Đang diễn ra

Bản cập nhật trực tiếp phải thể hiện một hoạt động đang diễn ra, với thời điểm bắt đầu và kết thúc rõ ràng. Nếu một hoạt động xảy ra trong quá khứ, đừng sử dụng tính năng Cập nhật trực tiếp. Thay vào đó, hãy sử dụng thông báo tiêu chuẩn. Điều này cũng đúng với các sự kiện chưa bắt đầu, mặc dù các 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 sử 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 bạn muốn làm việc này, hãy sử dụng tiện ích ứng dụng hoặc ô Cài đặt nhanh tuỳ chỉnh.

  • Cách sử dụng thích hợp: Tính năng chỉ đường đang hoạt độ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 đơn đặt món ăn đang hoạt động.
  • Mục đích 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, thông báo, sự kiện sắp tới trong lịch và truy cập nhanh vào các tính năng của ứng dụng.

Do người dùng thực hiện

Hầu hết nội dung Cập nhật trực tiếp 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 thể dục, bắt đầu chỉ đường lái xe hoặc gọi xe đi chung. Không hiển thị thông tin môi trường 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 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 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 hòa 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 có giới hạn thời gian trong tương lai. Trong những trường hợp này, bạn nên tự động hiển thị nội dung 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 trình 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 họ muốn bắt đầu theo dõi một sự kiện ở chế độ nền (chẳng hạn như trận đấu thể thao), thì bạn có thể bắt đầu đăng nội dung 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 Bỏ ghim vào thông báo liên quan.

Có tính thời gian

Chỉ hiển thị Thông tin cập nhật trực tiếp nếu thông tin đó đòi hỏi sự chú ý của người dùng 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 tính năng Cập nhật trực tiếp để theo dõi trạng thái phát triển của hoạt động.

Thông báo cập nhật trực tiếp thường phù hợp với các 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 chuyến bay của người dùng, nhưng thông báo này 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 sau khi bắt đầu lên máy bay. Ngược lại, tính năng Cập nhật trực tiếp không phù hợp để theo dõi một gói vì người dùng không cần phải liên tục theo dõi gói này.

Khối trạng thái

Khối trạng thái cho phép người dùng theo dõi Thông tin cập nhật trực tiếp khi thông báo không hiển thị. Sử dụng setShortCriticalText hoặc setWhen để truyền tải thông tin trạng thái quan trọng 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 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 để hiển thị 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 thông tin quan trọng.

Khi thời gian

Thời gian khi kích hoạt tính năng đếm ngược thời gian tồn tại của thông báo, trừ khi thông báo bị đóng hoặc cập nhật.

  • Thời gian when í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 when được đặt thành 10:10, thì khối này sẽ hiển thị "5 phút".
  • Nếu thời gian khi đã quá 1 phút, thông báo sẽ không xuất hiện.
  • Sử dụng setShowWhen đến FALSE nếu bạn không muốn thông báo hiển thị trong ngăn có thời gian.

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

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

  • Nếu có ít hơn 7 ký tự, hãy hiển thị toàn bộ văn bản.
  • Nếu chưa đến một nửa văn bản hiển thị, chỉ hiển thị 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 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 nội dung cập nhật mà người dùng có thể bỏ qua. Khô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ỏ.