- Forum-Beiträge: 47
14.11.2016, 19:09:54 via Website
14.11.2016 19:09:54 via Website
Hallo, ich habe eine Notification mit einem Action button, wenn man diesen Klickt dann erhält ein Receiver den Intent und führt dann den entsprechenden code für den Klick aus. Nun ich würde gerne über diesen Action Button Daten übertragen, bzw den Titel und alle Informationen von der Notification. Nur irgendwie bekomme ich dann eine null pointer exception, und das ist nicht das was ich will. Gibt es irgendwie eine möglichkeit die Daten von einer Notification über diesen Action-Button an den Receiver zu übermitteln? Ansonsten funktioniert alles wie es soll.
Notification:
private void makeNotificationErinnerung(Context context, String title, String details, String erstellt)
{
Intent i = new Intent(context, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, i, 0);
Bundle startOnClickBundle = new Bundle();
startOnClickBundle.putString(putExtraTitle, title);
startOnClickBundle.putString(putExtraDetails, details);
startOnClickBundle.putString(putExtraErstellt, erstellt);
Intent startOnClick = new Intent(); //Mit diesem Intent würde ich gerne das Bundle übertragen.
startOnClick.putExtras(startOnClickBundle);
Log.i("SynchMen:", "Intent_set(title):" + title);
startOnClick.setAction(intentActionCodeNotification);
PendingIntent pendingIntentLetSleep = PendingIntent.getBroadcast(context, 0, startOnClick, 0);
if(preferences.getSleep() != 1001 && preferences.getSleep() == 555)
{
}
else
{
NotificationCompat.Action action = new NotificationCompat.Action.Builder(R.drawable.ic_noti_logo, preferences.getSleep()+"", pendingIntentLetSleep).build(); //Hier wird es anschließend verwendet.
Notification noti = new NotificationCompat.Builder(this)
.setTicker("Recall: " + title)
.addAction(action)
.setContentTitle(title)
.setAutoCancel(true)
.build();
noti.flags = Notification.FLAG_AUTO_CANCEL;
NotificationManager notificationManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
Random random = new Random();
int mr = random.nextInt(9999 - 1000) + 1000;
notificationManager.notify(mr, noti);
}
}
Broadcast Receiver:
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(intentActionCodeNotification))
{
CLPreferences preferences = new CLPreferences(context);
Bundle bundle = intent.getExtras(); // Hier will ich sie auslesen ... funktioniert aber leider nicht, kriege jedesmal eine NullPointerException.
Log.i("onCLICK:", "Intent(Titel):" + bundle.getString(putExtraTitle));
}
}
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.