2016-06-11 4 views

Antwort

0

Wenn Sie jemals eine Benachrichtigung mit pre erstellt haben -Android N-Versionen dann wird es eine leichte Aufgabe für Sie sein. Weil sie diese direkte Antwortfunktion als Ergänzung zum bestehenden Benachrichtigungsgenerator eingeführt haben

Es gibt hauptsächlich zwei Ergänzungen, die wir machen müssen. Sie sind wie folgt,

  1. RemoteInput

  2. Antworten Aktion

Da diese Zusätze sind optional. Wenn Sie Benachrichtigungen mit NotificationCompat.Builder erstellen, erhalten Sie ein neues Aussehen der Benachrichtigung mit Standardstil, ohne Code hinzuzufügen.

Wenn wir erstellen Direkte Antworten wir grundsätzlich anders als früher API wird eine zusätzliche gleiche Antwort Aktion mit einem RemoteInput auf Notification Builder und alles geben.

Das ist eine Anleitung, wie zu einer bestehenden Meldung

direkte Antwort-Funktion hinzufügen, wenn Sie die Rückwärtskompatibilität wollen, dann NotificationCompat.Builder statt verwenden Notification.Builder

ausführliche Tutorial finden Sie hier http://devdeeds.com/android-reply-notification-directly/

danke

1

Versuchen Below-Code

android.support.v4.app.NotificationCompat.Action replayAction = new NotificationCompat.Action.Builder(R.mipmap.ic_launcher, "Replay", PendingIntent.getActivities(this, 1, new Intent[]{new Intent(this, ReplayActivity.class)}, PendingIntent.FLAG_UPDATE_CURRENT)) 
       .addRemoteInput(new RemoteInput.Builder("KEY").setAllowFreeFormInput(true).setLabel("Enter text you want to send").build()) 
       .build(); 

android.support.v4.app.NotificationCompat.Builder builder = new NotificationCompat.Builder(this) 
       .setSmallIcon(R.drawable.ic_notification_icons) // Must Required 
       .addAction(replayAction); 
       ...// Notification Configuration 


android.app.NotificationManager mgr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
       mgr.notify(1, builder.build()); 

------ In ReplayActivity.class -----

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_replay); 

     Intent intent = getIntent(); 

     Bundle remoteInput = android.support.v4.app.RemoteInput.getResultsFromIntent(intent); 

     if (remoteInput != null) { 
      String s = (String) remoteInput.getCharSequence("KEY"); 
      Toast.makeText(this, "" + s, Toast.LENGTH_LONG).show(); 
      // Do whatever with Text 
     } 
    } 
+0

Funktioniert das für Sie? – ericwjr

+0

Ja Code funktioniert in meiner App –