2015-10-09 43 views

Trả lời

26

bước để được chăm sóc từ các mã dưới đây.

NotificationCompat.Builder:contains the UI specification and action information 
NotificationCompat.Builder.build() :used to create notification (Which returns Notification object) 
Notification.InboxStyle: used to group the notifications belongs to same ID 
NotificationManager.notify():to issue the notification. 

Sử dụng mã bên dưới để tạo thông báo và nhóm nhóm. Bao gồm các chức năng trong một nút bấm.

private final int NOTIFICATION_ID = 237; 
private static int value = 0; 
Notification.InboxStyle inboxStyle = new Notification.InboxStyle(); 
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.push_notify_icon); 
public void buttonClicked(View v) 
{ 
     value ++; 
     if(v.getId() == R.id.btnCreateNotify){ 
      NotificationManager nManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
      Notification.Builder builder = new Notification.Builder(this);    
      builder.setContentTitle("Lanes"); 
      builder.setContentText("Notification from Lanes"+value); 
      builder.setSmallIcon(R.drawable.ic_launcher); 
      builder.setLargeIcon(bitmap); 
      builder.setAutoCancel(true); 
      inboxStyle.setBigContentTitle("Enter Content Text"); 
      inboxStyle.addLine("hi events "+value); 
      builder.setStyle(inboxStyle); 
      nManager.notify("App Name",NOTIFICATION_ID,builder.build()); 
     } 
} 

Đối với thông báo riêng biệt gán NOTIFICATION_IDs khác nhau ..

+1

Tôi đã viết mã cho trình tạo trong lớp 'FcmMessagingService'. bên trong một lớp bên trong 'onMessageRecieved'. Tôi có thể nhận tất cả các thông báo chi tiết nhưng có vẻ như thông báo đã được lưu lại từ các ứng dụng khác nhau. –

1

Bạn cần tạo thông báo để có thể cập nhật thông báo bằng ID thông báo bằng cách gọi NotificationManager.notify(ID, notification).

Các bước sau đây cần phải được tạo ra để cập nhật các thông báo:

  1. Update hoặc tạo ra một đối tượng NotificationCompat.Builder
  2. Xây dựng một đối tượng thông báo từ nó
  3. Issue Notification với cùng một ID bạn đã dùng trước đó

Ví dụ được lấy từ tài liệu dành cho nhà phát triển Android:

mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

// Sets an ID for the notification, so it can be updated 
int notifyID = 1; 

mNotifyBuilder = new NotificationCompat.Builder(this) 
    .setContentTitle("New Message") 
    .setContentText("You've received new messages.") 
    .setSmallIcon(R.drawable.ic_notify_status) 
numMessages = 0; 

// Start of a loop that processes data and then notifies the user 
... 
mNotifyBuilder.setContentText(currentText).setNumber(++numMessages); 

// Because the ID remains unchanged, the existing notification is updated. 
mNotificationManager.notify(notifyID, mNotifyBuilder.build()); 
... 

Xem thêm các tài liệu Android trên Stacking Notifications https://developer.android.com/training/wearables/notifications/stacks.html

+4

Phải. Tôi thấy API khó hiểu: Phương thức NotificationCompatBuilder.setGroup() xuất phát từ API Wearable. Mục đích của nó là quản lý các nhóm thông báo trên thiết bị đeo - mặc dù nó cũng ảnh hưởng đến điện thoại. Nhưng hầu hết mọi người đang tìm kiếm các nhóm giống như Gmail-Whastapp trên điện thoại. Câu trả lời là: bạn phải tự mình sử dụng notificationID để cập nhật thông báo của mình. Và bạn phải lưu dữ liệu giữa mỗi thông báo, để có thể tính toán thông báo "tóm tắt" - một lần nữa, tùy thuộc vào bạn để xây dựng và gửi cùng một ID để thay thế thông báo "không tóm tắt" trước đó . – John

0

Đối với luận lý đầy đủ xin vui lòng xem xét kiểm tra answer.I tôi sử dụng logic với sở thích chia sẻ và thu phát sóng như tôi cần thiết để nhóm mỗi tin nhắn người sử dụng vào một đơn và được nhìn thấy thông báo hoạt động. Chỉ bằng cách nhắm mục tiêu api cấp 23 bạn có thể nhận được thông báo hoạt động, nó đã không giúp tôi ở tất cả. Vì vậy tôi quyết định viết một số logic nhỏ. Kiểm tra nó ở đây nếu bạn cảm thấy thích.

https://stackoverflow.com/a/38079241/6466619

Các vấn đề liên quan