Я пытаюсь заставить работать уведомления для приложения Android. Как заставить его отправлять уведомления, например, между двумя телефонами, работающими на уровне API 22 (Android 5.1) и API уровня 26 (Android 8.0)?
Если я отправляю уведомление с телефона A (Android 5.1) на телефон B (Android 8.0), уведомление отображается только тогда, когда приложение убито или находится в фоновом режиме, но не когда я в приложении и намерение подключено к уведомлению. не работает все вместе. При отправке уведомления от B к A приложение не отображает уведомление, если приложение убито, только если оно находится в фоновом режиме или если я нахожусь в приложении, а уведомление при нажатии вызывает сбой приложения, когда приложение находится в фоновом режиме, но не когда я Я в приложении.
Как мне заставить его отображать уведомление на обоих телефонах, если приложение убито или находится в фоновом режиме или на переднем плане, и заставить намерение из уведомления работать, а не сбить приложение?
Это мой первый вопрос о переполнении стека, поэтому я заранее прошу прощения за любые ошибки и орфографические ошибки.
String channelId = "Default";
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(notification_title)
.setContentText(notification_body)
.setSound(defaultSoundUri)
.setPriority(NotificationCompat.PRIORITY_HIGH);
Intent resultIntent = new Intent(click_action);
resultIntent.putExtra("user_id", from_user_id);
PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(resultPendingIntent);
int notificationId = (int) System.currentTimeMillis();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel = new NotificationChannel(channelId, "Default channel", NotificationManager.IMPORTANCE_HIGH);
manager.createNotificationChannel(channel);
}
manager.notify(notificationId, builder.build());