Push notifications service for Android 4.4

后端 未结 2 1045
遇见更好的自我
遇见更好的自我 2021-01-15 06:07

I have done work on push notifications and its working correct but in case till api level 4.0. But notification click does not open the activity in case of api 4.4....I am n

相关标签:
2条回答
  • 2021-01-15 06:25

    Try something like below:

            private final static int NOTIFICATION_ID = 1;
            private static NotificationManager mNotificationManager;
    
            if (Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
                // API 16 onwards
                Notification.Builder builder = new Notification.Builder(context);
                builder.setAutoCancel(false)
                    .setContentIntent(pendingIntent)
                    .setContentText(context.getString(R.string.notification_text))
                    .setContentTitle(context.getString(R.string.app_name))
                    .setOngoing(true)
                    .setSmallIcon(R.drawable.ic_notifier)
                    .setWhen(System.currentTimeMillis());
                Notification notification = builder.build();
                notification.flags |= Notification.FLAG_ONGOING_EVENT | Notification.FLAG_NO_CLEAR;
                mNotificationManager.notify(NOTIFICATION_ID, notification);         
            } else {
                // API 15 and earlier
                NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
                builder.setAutoCancel(false)
                    .setContentIntent(pendingIntent)
                    .setContentText(context.getString(R.string.notification_text))
                    .setContentTitle(context.getString(R.string.app_name))
                    .setOngoing(true)
                    .setSmallIcon(R.drawable.ic_notifier)
                    .setWhen(System.currentTimeMillis());
                Notification notification = builder.getNotification();
                notification.flags |= Notification.FLAG_ONGOING_EVENT | Notification.FLAG_NO_CLEAR;
                mNotificationManager.notify(NOTIFICATION_ID, notification);         
            }
    

    Add the JSON part where appropriate. And don't forget to add the android-support-v4.jar to your project or it won't compile.

    0 讨论(0)
  • 2021-01-15 06:30
    This is working for my apps... Try this...
    
    private void showNotification(Context context) {
            // TODO AK-generated method stub
            String appName = context.getString(R.string.app_name);
            NotificationCompat.Builder mBuilder =
                    new NotificationCompat.Builder(context)
                            .setSmallIcon(R.drawable.notification_icon)
                            .setContentTitle(appName)
                            .setContentText(appName);
    
            Uri sound = Uri.parse("android.resource://" + context.getPackageName() + "/raw/" + audioToneName);
            mBuilder.setSound(sound);
            mBuilder.setAutoCancel(true);
            mBuilder.setVibrate(Utility.vibrationPattern);
            // Creates an explicit intent for an Activity in your app
            Intent resultIntent = new Intent(context, RootActivity.class);
            // The stack builder object will contain an artificial back stack for
            // the
            // started Activity.
            // This ensures that navigating backward from the Activity leads out of
            // your application to the Home screen.
            TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
            // Adds the back stack for the Intent (but not the Intent itself)
            stackBuilder.addParentStack(RootActivity.class);
            // Adds the Intent that starts the Activity to the top of the stack
            stackBuilder.addNextIntent(resultIntent);
            PendingIntent resultPendingIntent =
                    stackBuilder.getPendingIntent(
                            0,
                            PendingIntent.FLAG_UPDATE_CURRENT
                            );
            mBuilder.setContentIntent(resultPendingIntent);
            NotificationManager mNotificationManager =
                    (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
            // mId allows you to update the notification later on.
            mNotificationManager.notify(321, mBuilder.build());
        }
    
    0 讨论(0)
提交回复
热议问题