Reputation: 808
Got a little problem that's been bugging me..
I've set up my application to receive PUSH notifications from Urban Airship and that all works fine, but when I tap on a notification in the notifications center, nothing happens.
I want my app to open when a user taps a PUSH notification - what can I do to achieve this?
Any help is as always greatly appreciated.
Thanks
Upvotes: 9
Views: 18789
Reputation: 1
you have to call pendingIntent before call .setAutoCancel(true);
look at my builder :
NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext(),channel_id).setSmallIcon(R.drawable.logo).setSound(uri).setVibrate(new long[]{1000,1000,1000,1000,1000})
.setOnlyAlertOnce(true).setContentIntent(pendingIntent).setAutoCancel(true);
Upvotes: 0
Reputation: 1760
Following one of their sample projects (https://github.com/urbanairship/android-samples/tree/master/app/src/main/java/com/urbanairship/sample), you can extend the AirshipReceiver class and then override the onReceive method. This did the trick for me:
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
String action = intent.getAction();
if (action.equals(PushManager.ACTION_NOTIFICATION_OPENED)) {
Intent launch = new Intent(Intent.ACTION_MAIN);
launch.setClass(UAirship.shared().getApplicationContext(), MyHome.class);
launch.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
launch.putExtra("doWhatever",true);
UAirship.shared().getApplicationContext().startActivity(launch);
}
}
Upvotes: 1
Reputation: 5697
Create a pending Intent to start the activity and set it in notification using setLatestEventInfo.
Example:
Context context = getApplicationContext();
CharSequence contentTitle = "My notification";
CharSequence contentText = "Hello World!";
Intent notificationIntent = new Intent(this, MyClass.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
More info can be found here
Upvotes: 10
Reputation: 13060
You need to use a custom notification builder and use one of your activities as the PendingIntent.
Upvotes: 1