Android, нажав на группу уведомлений - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть группа уведомлений в Android App.Мне нужно, чтобы мое приложение знало, было ли приложение открыто, когда пользователь щелкнул уведомление.Я использовал ожидание намерения, и это работает блестяще.Но как я могу проверить, нажал ли пользователь на группу уведомлений? На ней нет ссылок, звуков уведомлений, ничего.Я не нашел никакой информации в документации.Пожалуйста, помогите. enter image description here

1 Ответ

0 голосов
/ 27 ноября 2018

Вы можете добавить флаг в намерении, например isFromNotification логическое значение, а затем передать это намерение в ожидание намерения и затем уведомить пользователя.

Теперь в намерении проверки активности есть этот параметр, после чего пользователь пришелиз уведомления.(просто так)

Пример кода

Intent notificationIntent = new Intent(this, TargetActivity.class);

notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
            | Intent.FLAG_ACTIVITY_CLEAR_TASK
            | Intent.FLAG_ACTIVITY_NEW_TASK);

String channel_Id = "app_channel_01";

notificationIntent.putExtra(AppConstants.INTENTDATA.ISFROMNOTIFICATION,
        true);

PendingIntent pendingIntent = PendingIntent.getActivity(MyApplication.getInstance(),
            0, notificationIntent,
            0);

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(MyApplication.getInstance(), channel_Id)
            .setSmallIcon(R.mipmap.ic_launcher)
            .setColor(MyApplication.getInstance().getResources().getColor(android.R.color.white))
            .setContentTitle(getResources().getString(R.string.app_name))
            .setContentText(message)
            .setAutoCancel(true)
            .setContentIntent(pendingIntent)
            .setWhen(System.currentTimeMillis());

NotificationManager notificationManager =
    (NotificationManager) MyApplication.getInstance().getSystemService(Context.NOTIFICATION_SERVICE);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

    // Create or update.
    NotificationChannel channel = new NotificationChannel(channel_Id,
        "General Notifications",
        NotificationManager.IMPORTANCE_DEFAULT);
    notificationManager.createNotificationChannel(channel);
}

notificationManager.notify(notificationId, notificationBuilder.build());
...