Android NotificationManager не предупреждает пользователя - PullRequest
0 голосов
/ 14 января 2020

У меня та же проблема, что и у этого человека: Ошибка NotificationManager Android Studio

Однако у меня уже есть решение, реализованное некоторое время go, но оно просто перестало работать. Я в API сборки 28 на P10 с установленным Oreo 8.0.0. Мой код выполняет логи уведомлений c, но я получаю эту ошибку:

E/NotificationManager: notifyAsUser: tag=null, id=-1522221101, user=UserHandle{0}

, и хотя значок в уведомлении всплывает в панели уведомлений телефона, и нажатие на него открывает мои намерения, пользователь не получает уведомления о том, что это сообщение прибыло. Я пытался использовать приложение на переднем и заднем плане - в обоих случаях маленький значок появляется на панели уведомлений в верхней части пользовательского интерфейса телефона, но без звука и сообщений.

Вот мой код:

Intent intent = new Intent(getContext(), AuthRequestActivity.class);
intent.putExtra(getContext().getPackageName().concat(".param0"), code);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(getContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
  NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
  NotificationChannel channel = new NotificationChannel("default", "My Channel", NotificationManager.IMPORTANCE_DEFAULT);
  channel.setDescription("ALP Push Notifications");
  notificationManager.createNotificationChannel(channel);
}

Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(getContext(), "default").setSmallIcon(R.drawable.app_icon)
    .setContentTitle("Authentication Request").setContentText(code)
    .setAutoCancel(true).setSound(defaultSoundUri)
    .setContentIntent(pendingIntent);

NotificationManagerCompat notificationManager = NotificationManagerCompat.from(getContext());
// Below alternative makes no difference
//    NotificationManager notificationManager = (NotificationManager) getContext().getSystemService(Context.NOTIFICATION_SERVICE);

notificationManager.notify((int) System.currentTimeMillis(), notificationBuilder.build());

Что я делаю не так?

...