Как установить несколько будильников в Android

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

android,

1

Ответов: 1


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

Простые шаги:

  1. Установите будильник, чтобы разбудить устройство один раз в день
  2. Когда вы получаете сигнал тревоги, возьмите замок
  3. Выясните, произойдут ли сегодня какие-нибудь дни рождения
  4. Если так, отправьте / поставьте в очередь сообщение и т. Д.
  5. Установите будильник на завтра

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

Мой код тревоги:

long alarmTime = System.currentTimeMillis()+(24*60*60*1000);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(context.ALARM_SERVICE);
Intent intent = new Intent("<package name>.WAKEUP_ALARM");
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_ONE_SHOT);
alarmManager.set(AlarmManager.RTC_WAKEUP, alarmTime, pendingIntent);

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

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

Если вы действительно хотите передать идентификатор базы данных через сигнализацию, просто добавьте его в Intent:

Intent intent = new Intent("<package name>.WAKEUP_ALARM");
intent.putExtra("DatabaseKey", 1);

Для отправки сообщения (предполагается, что SMS-сообщение?) Автоматически требуется разрешение SEND_SMS и отправка SMS-сообщения в фоновом режиме - как этот ответ от stackoverflow

андроид,
Похожие вопросы