Ich habe eine NotificationListenerService
erstellt, um einen Sound wiederzugeben, sobald ich eine PUSH-Benachrichtigung erhalte. Aber die NotificationListenerService
informiert mich über jede Benachrichtigung aufgetreten systemweit, und was ich versuche zu tun ist, um das Verhalten der NotificationListenerService
zu beschränken, so dass auf Benachrichtigungen von meiner App nur zu antworten. Mit anderen Worten, der Rückruf onNotificationPostedPosted
in den unten angegebenen Code in NLS
Abschnitt wird aufgerufen, auch wenn ich das USB-Kabel an das Gerät und den Code in diesem Callback ausgeführt wird, und ich möchte den Code in
`onNotificationPostedPosted 'zu nur ausgeführt werden, wenn meine App eine Benachrichtigung sendet.So rufen Sie den PendingIntent im NotificationListenerService ab
um dieses Problem zu lösen, wie in der unten stehenden Code gezeigt, ich zusätzlich zu meinem Intent
wie folgt hinzugefügt:
intent.putExtra("key_message", "MANT-App");
Das Problem, das ich nicht heißt haben, dass ich keinen Zugang zu dieser Absicht haben in ` onNotificationPostedPosted '.
Bitte lassen Sie mich wissen, wie man die Intent
oder die PendingIntent
in `onNotificationPostedPosted 'bekommt/Zugang?
Code:
Intent intent = new Intent(getApplicationContext(), HomeActivity_.class);
intent.putExtra("key_message", "MANT-App");
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
String title = getString(R.string.app_name);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this).setSmallIcon(R.drawable.ic_launcher);
builder.setStyle(new NotificationCompat.BigTextStyle().bigText(msg)).setContentText(msg).setContentTitle(title);
builder.setContentIntent(contentIntent).setAutoCancel(true);
builder.setLights(Color.argb(1, 255, 0, 0), 400, 1300);
builder.setOngoing(true);
builder.setAutoCancel(true);
((NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE)).notify(NOTIFICATION_ID, builder.build());
NLS
@Override
public void onNotificationPosted(StatusBarNotification sbn) {
super.onNotificationPosted(sbn);
Log.w(TAG, "onNotificationPosted");
Log.d(TAG, "sbn.describeContents(): " + sbn.describeContents());
Log.d(TAG, "getNotification().contentIntent.describeContents(): " + sbn.getNotification().contentIntent.describeContents());
Message msg = handler.obtainMessage();
msg.obj = "onNotificationPosted";
handler.sendMessage(msg);
mNotificationRemoved = false;
if (!NLSNotificationTone11.TONE_IS_PLAYING) {
NLSNotificationTone11.TONE_IS_PLAYING = true;
new ThreadPlayTone(this, NLSNotificationTone11.DURATION_OF_RING_TONE).start();
}
}