2

如何在通知FCM上添加按鈕以及如何在該按鈕上添加單擊事件。我需要通知如何在通知FCM上添加按鈕Android

兩個按鈕我如何添加單擊事件的按鈕通知FCM的Android這樣的形象辭退回答

enter image description here

public class MyFirebaseMessagingService extends FirebaseMessagingService { 

    private static final String TAG = "FCM Service"; 

    @Override 
    public void onMessageReceived(RemoteMessage remoteMessage) { 
     // TODO: Handle FCM messages here. 
     Log.d(TAG, "From: " + remoteMessage.getFrom()); 
     Log.d(TAG, "Notification Message Body: " + remoteMessage.getNotification().getBody()); 
     createNotification(remoteMessage.getNotification().getBody()); 
    } 

    private void createNotification(String messageBody) { 
     Intent intent = new Intent(this , ResultActivity. class); 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     PendingIntent resultIntent = PendingIntent.getActivity(this , 0, intent, PendingIntent.FLAG_ONE_SHOT); 

     Intent intent1 = new Intent(this, ResultActivity.class); 
     PendingIntent resultIntents = PendingIntent.getActivity(this , 0, intent1, PendingIntent.FLAG_ONE_SHOT); 

     Uri notificationSoundURI = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
     NotificationCompat.Builder mNotificationBuilder = new NotificationCompat.Builder(this) 
       .setSmallIcon(R.mipmap.ic_launcher) 
       .setContentTitle("Android Tutorial Point FCM Tutorial") 
       .setContentText(messageBody) 
       .setDefaults(Notification.DEFAULT_ALL) 
       .setPriority(NotificationCompat.PRIORITY_HIGH) 
       .setAutoCancel(true) 
       .addAction(R.drawable.switches, "Hello", resultIntents) 
       .addAction(R.drawable.call, "Call", resultIntent) 
       .setSound(notificationSoundURI) 
       .setContentIntent(resultIntent); 
     NotificationManager notificationManager = 
       (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
     notificationManager.notify(0, mNotificationBuilder.build()); 
    } 
} 
public class FirebaseIDService extends FirebaseInstanceIdService { 
    private static final String TAG = "FirebaseIDService"; 

    @Override 
    public void onTokenRefresh() { 
     // Get updated InstanceID token. 
     String refreshedToken = FirebaseInstanceId.getInstance().getToken(); 
     Log.d(TAG, "Refreshed token: " + refreshedToken); 

     // TODO: Implement this method to send any registration to your app's servers. 
     sendRegistrationToServer(refreshedToken); 
    } 

    private void sendRegistrationToServer(String token) { 
     // Add custom implementation, as needed. 
    } 
} 
+1

這只是一個普通的android通知。請顯示您的代碼來處理fcm通知 –

+0

您可以按照此鏈接:https://stackoverflow.com/questions/21925688/adding-button-action-in-custom-notification –

回答

1

從API級別4.1,你可以向通知添加操作按鈕。要查看有關通知的基本檢查android doc 和一些更多的幫助,您可以檢查此so answertutorial

//Here in intent your will need provide the class which you want to open on button click in notification 
Intent intent = new Intent(this, NotificationReceiverActivity.class); 
PendingIntent pIntent = PendingIntent.getActivity(this, (int) System.currentTimeMillis(), intent, 0); 

// Build notification 
// Actions are just fake 
Notification noti = new Notification.Builder(this) 
     .setContentTitle("New mail from " + "[email protected]") 
     .setContentText("Subject").setSmallIcon(R.drawable.icon) 
     .setContentIntent(pIntent) 
     .addAction(R.drawable.icon, "Call", pIntent) 
     .addAction(R.drawable.icon, "More", pIntent) 
     .addAction(R.drawable.icon, "And more", pIntent).build(); 
+0

我如何在按鈕上添加點擊事件 –

+0

您需要添加到通知構建器中的addAction()方法上的不同掛起操作..我已編輯答案 –

+0

給我一個例子@ Burhanuddin Rashid單擊事件代碼 –

1
NotificationCompat.Builder builder = new NotificationCompat.Builder(this) 
      // Set Icon 
      .setSmallIcon(R.drawable.icon) 
      // Set Ticker Message 
      .setTicker("notification received") 
      // Dismiss Notification 
      .setAutoCancel(true) 
      //.setWhen(0) 
      // Set PendingIntent into Notification 
      .setContentIntent(pIntent) 
      // Set RemoteViews into Notification 
      // .setContent(remoteViews) 
      // Set Title 
      .setContentTitle("App") 
      // show big notification hint when app is open 
      //.setPriority(Notification.PRIORITY_MAX) 
      // Set Text 
      .setContentText(messageBody) 
      // Set Sound 
      .setSound(defaultSoundUri) 
      // notification button 1 
      .addAction(viewAction) 
      // notification button 2 
      .addAction(rejectAction) 
      // notification button 3 
      .addAction(approveAction); 

在這裏,我已經添加3個按鈕爲「.addAction」。我們可以給每個按鈕個別操作如下:

NotificationCompat.Action viewAction = new NotificationCompat.Action.Builder(R.drawable.view_icon, "View", viewIntentPending).build();