Отправка локальных уведомлений на Android

118
14

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

спросил(а) 2021-01-19T19:26:08+03:00 6 месяцев назад
1
Решение
100

Смотрите: Локальные уведомления в Android?
Вы должны иметь возможность планировать Intent с диспетчером аварийных сигналов каждый час.

ответил(а) 2021-01-19T19:26:08+03:00 6 месяцев назад
63

Intent intent = new Intent(context, yourActivity.class);
PendingIntent pIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

NotificationCompat.Builder b = new NotificationCompat.Builder(context);

b.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL)
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.drawable.ic_launcher)
.setTicker("notification")
.setContentTitle("notification")
.setContentText("notification")
.setDefaults(Notification.DEFAULT_LIGHTS| Notification.DEFAULT_SOUND)
.setContentIntent(pIntent)
.setContentInfo("Info");

NotificationManager notificationManager = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(1, b.build());

ответил(а) 2021-01-19T19:26:08+03:00 6 месяцев назад
-4

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


        Intent notificationIntent = new Intent(context,
ReminderListActivity.class);

notificationIntent.putExtra("clicked", "Notification Clicked");
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_SINGLE_TOP); // To open only one activity

// Invoking the default notification service

NotificationManager mNotificationManager;
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
context);
Uri uri = RingtoneManager
.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
mBuilder.setContentTitle("Reminder");
mBuilder.setContentText("You have new Reminders.");
mBuilder.setTicker("New Reminder Alert!");
mBuilder.setSmallIcon(R.drawable.clock);
mBuilder.setSound(uri);
mBuilder.setAutoCancel(true);

// Add Big View Specific Configuration
NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle();
String[] events = null;

events[0] = new String("Your first line text ");
events[1] = new String(" Your second line text");

// Sets a title for the Inbox style big view
inboxStyle.setBigContentTitle("You have Reminders:");

// Moves events into the big view
for (int i = 0; i < events.length; i++) {
inboxStyle.addLine(events[i]);
}

mBuilder.setStyle(inboxStyle);

// Creates an explicit intent for an Activity in your app
Intent resultIntent = new Intent(context,
ReminderListActivity.class);

TaskStackBuilder stackBuilder = TaskStackBuilder
.create(context);
stackBuilder.addParentStack(ReminderListActivity.class);

// Adds the Intent that starts the Activity to the top of the stack

stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder
.getPendingIntent(0, PendingIntent.FLAG_CANCEL_CURRENT);

mBuilder.setContentIntent(resultPendingIntent);
mNotificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);

// notificationID allows you to update the notification later on.

mNotificationManager.notify(999, mBuilder.build());

ответил(а) 2021-01-19T19:26:08+03:00 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема