Autore Topic: mostrare notifica ad un orario specifico di un giorno specifico  (Letto 576 volte)

Offline Andre99

  • Utente junior
  • **
  • Post: 54
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone 875
  • Play Store ID:
    F. Andreuzzi
  • Sistema operativo:
    Linux Mint 16 Cinnamon
mostrare notifica ad un orario specifico di un giorno specifico
« il: 06 Agosto 2014, 18:36:54 CEST »
0
ciao,
vorrei sapere cosa devo fare per ottenere una notifica che verrà mostrata, come da titolo, in un momento dato. e ancora, se questa può essere cancellata, in modo da impedirne la visualizzazione, prima di questa data.
grazie
Andre99
Trieste-12/12/1999
T-UI, Terminal Console Launcher: https://play.google.com/store/apps/details?id=ohi.andre.consolelauncher

Offline Vincenzoz

  • Utente junior
  • **
  • Post: 122
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Moto G
  • Play Store ID:
    Vincenzo Cimino
  • Sistema operativo:
    Windows 7
Re:mostrare notifica ad un orario specifico di un giorno specifico
« Risposta #1 il: 07 Agosto 2014, 07:39:36 CEST »
0
Potresti settare l'orario e il giorno a cui vuoi la notifica, utilizzando una variabile di tipo Calendar e poi inviare la notifica con un AlarmManager. Prova a dare un occhiata a questo link:

android - Set notification to specific time - Stack Overflow
Vincenzo Cimino @ Google Play Store


Offline tonno16

  • Utente storico
  • *****
  • Post: 1228
  • Respect: +59
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:mostrare notifica ad un orario specifico di un giorno specifico
« Risposta #2 il: 07 Agosto 2014, 08:16:37 CEST »
0
Ti serve un broadcast receiver per il boot completed.....
Un altro broadcast receiver richiamato da un alarm manager.
Col calendario imposti la data e la passi all alarmmanager.

Il primo receiver serve per non eliminare l alarmmanager in caso di spegnimento telefono.


Se invece ti serve come notifica del tipo "app expired"
Allora va bene un data base al lancio della prima app. Ti salvi una data uguale a currentDate()+tempo-periodo-prova.

Nel onCreate () vefichi se quel determinato campo soddisfa la tua condizione per IP periodo di prova.

Offline Andre99

  • Utente junior
  • **
  • Post: 54
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone 875
  • Play Store ID:
    F. Andreuzzi
  • Sistema operativo:
    Linux Mint 16 Cinnamon
Re:mostrare notifica ad un orario specifico di un giorno specifico
« Risposta #3 il: 07 Agosto 2014, 15:37:32 CEST »
0
ciao, scusate se non ho risposto subito, ma non sono riuscito a leggere i messaggi... comunque, io pensavo ad una notifica che deve poter essere visualizzabile anche senza avere l app accesa, quindi, perdona la mia ignoranza (non sono molto pratico con la programmazione android, ci devo prendere la mano), questo è possibile con i broadcast receiver?
Andre99
Trieste-12/12/1999
T-UI, Terminal Console Launcher: https://play.google.com/store/apps/details?id=ohi.andre.consolelauncher

Offline tonno16

  • Utente storico
  • *****
  • Post: 1228
  • Respect: +59
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:mostrare notifica ad un orario specifico di un giorno specifico
« Risposta #4 il: 07 Agosto 2014, 15:42:43 CEST »
+1
Apri la tua app. metti un calendarView nel layout.

tramite i getter() ricavi la data selezionata,  a memoria non ricordo i nomi dei metodi.

Poi imposti un alarmManager...che normalmente facendo .set() ne imposti solo una, facendo .setReapiting() imposti infiniti alarm con un intervallo.
Prendi il primo caso: Anche se chiudi l'app, o android sceglie di killarla dopo 3 minuti, bhe, hai registrato il tuo broadcast receiver nel manifest. La tua alarmManager viene eseguita in base al calendario, non in base alla tua app. Quindi si, funziona anche se l'app viene chiusa.

Non funziona se spegni il telefono. Infatti devi fare un ulteriore receiver per il problema dello spegnimento

Offline Andre99

  • Utente junior
  • **
  • Post: 54
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone 875
  • Play Store ID:
    F. Andreuzzi
  • Sistema operativo:
    Linux Mint 16 Cinnamon
Re:mostrare notifica ad un orario specifico di un giorno specifico
« Risposta #5 il: 07 Agosto 2014, 15:57:38 CEST »
0
e questo receiver è quello di boot complete. ok, grazie
Andre99
Trieste-12/12/1999
T-UI, Terminal Console Launcher: https://play.google.com/store/apps/details?id=ohi.andre.consolelauncher

Offline tonno16

  • Utente storico
  • *****
  • Post: 1228
  • Respect: +59
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:mostrare notifica ad un orario specifico di un giorno specifico
« Risposta #6 il: 07 Agosto 2014, 16:02:10 CEST »
0
Si esatto. Vorse devi anche dichiarare dei permessi nel manisfet, non ricordo

Offline Andre99

  • Utente junior
  • **
  • Post: 54
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone 875
  • Play Store ID:
    F. Andreuzzi
  • Sistema operativo:
    Linux Mint 16 Cinnamon
Re:mostrare notifica ad un orario specifico di un giorno specifico
« Risposta #7 il: 07 Agosto 2014, 18:29:22 CEST »
0
mi sono documentato un pò, ma non ho capito bene cosa dovrei far fare al receiver che riceve il boot_complete. cosa metto nel metodo onReceive? devo avviare l alarmmanager?
Andre99
Trieste-12/12/1999
T-UI, Terminal Console Launcher: https://play.google.com/store/apps/details?id=ohi.andre.consolelauncher

Offline BlackJad

  • Utente junior
  • **
  • Post: 59
  • Respect: +6
    • Google+
    • michele-ziparo/4/825/a99/
    • blackjad82
    • Mostra profilo
    • Datawit Systems
  • Dispositivo Android:
    Samsung Galaxy S3
  • Play Store ID:
    Michele Ziparo
  • Sistema operativo:
    Windows 8.1
Re:mostrare notifica ad un orario specifico di un giorno specifico
« Risposta #8 il: 06 Settembre 2014, 14:19:34 CEST »
0
Potresti seguire questa procedura:

1. Dalla tua applicazione imposti la data e l'ora in cui vuoi visualizzare la notifica

2. Salvi questo dato in qualche punto (preferenze oppure database o quello che vuoi)

3. Appena salvato il valore, lanci un AlarmManager impostando il singolo evento in base al momento che hai scelto

4. Crei un boot receiver,

5. Nel metodo onReceive, imposti di nuovo l'AlarmManager come fatto al punto 2