Olá pessoal, tudo bom?
Neste post, escrevo sobre como agendar alarmes e lembretes no Windows Phone através de uma APP que você esteja desenvolvendo. A técnica é bastante simples, pois podemos contar com classes praticamente prontas para esse fim, mas antes de iniciarmos a codificação, é importante entendermos qual a diferença entre ALARMES e LEMBRETES para o WP.
Alarmes (Alarm): Quando você agenda um alarme para o Windows Phone, isso significa dizer que você está planejando ser avisado sobre algum evento que você não pode esquecer ou deixar de fazer de jeito nenhum. Seu funcionamento é parecido ao de um despertador, ou seja, ficará emitindo avisos sonoros (o desenvolvedor pode escolher qual som irá tocar) ininterruptamente até que o dono do telefone tenha que interferir e então notar a mensagem de aviso que lhe está sendo passado.
Lembretes (Reminder): Os lembretes são parecidos com os alarmes, mas o aviso sonoro ocorre apenas uma vez no momento em que o mesmo foi agendado, porém permite que o usuário reagende o lembre para um novo período de tempo e também lhe é dada a opção de tocar no lembrete e então ser redirecionado para uma determinada parte da APP que gerou o lembrete, por exemplo, caso você estivesse utilizando um leitor de RSS para ler alguma notícia e decidisse agendar a leitura de tal notícia para mais tarde, nesse caso, o desenvolvedor poderia preparar o lembrete para permitir que quando o mesmo fosse disparado pelo agendamento o usuário pudesse tocá-lo para ser direcionado diretamente para a porção da APP que permitiria a leitura da notícia agendada.
Bem, agora que entendemos a diferença entre alarmes e lembretes, vamos verificar como codifica-los:
Implementando alarmes
private void btnAlarm_Click(object sender, RoutedEventArgs e)
{
Alarm alarm = new Alarm("Alarm")
{
BeginTime = DateTime.Now.AddMinutes(1),
Content = "Exemplo de Alarme !!!",
RecurrenceType = RecurrenceInterval.None,
Sound = new Uri("/Assets/AirHorn.mp3", UriKind.Relative)
};
ScheduledActionService.Add(alarm);
}
Implementando lembretes
private void btnReminder_Click(object sender, RoutedEventArgs e)
{
var schedule = ScheduledActionService.Find("Lembrete");
if (schedule == null)
{
Reminder reminder = new Reminder("Lembrete")
{
BeginTime = DateTime.Now.AddSeconds(30),
Title = "Blog do Eduardo H. Rizo",
Content = "Teste de Lembrete...",
RecurrenceType = RecurrenceInterval.None,
NavigationUri = new Uri("/ReminderPage.xaml?msg=Detalhes do Lembrete", UriKind.Relative)
};
ScheduledActionService.Add(reminder);
}
else
{
if (MessageBox.Show("O lembrete já está agendado. Deseja substituir?", "Aviso", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
{
Reminder reminder = (Reminder)schedule;
reminder.BeginTime = DateTime.Now.AddSeconds(30);
reminder.Content = "Teste de Lembrete Alterado...";
ScheduledActionService.Replace(reminder);
}
}
}
Grande abraço !
Eduardo Henrique Rizo (@eduardorizo)
Post Relacionado:
Fonte: Blog do Eduardo H. Rizo
Comentários