Autore Topic: Resettare il Notification Number  (Letto 852 volte)

Offline Auron

  • Utente junior
  • **
  • Post: 104
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone Android 2.2.1
  • Sistema operativo:
    Windows
Resettare il Notification Number
« il: 17 Gennaio 2012, 11:52:37 CET »
0
Salve gente,
Mi chiedevo come fosse possibile resettare il Notification Number...Ma pare non sia possibile perchè ogni volta che clicco sulla notifica per aprirla oppure la cancello tramite il tasto "Cancella" di Android nella Notification Bar, viene giustamente tolta dall'elenco della Notification Bar, ma se poi viene rinvocata lo stesso tipo di notifica il contatore non si resetta e rimane all'ultimo salvato.

Preso anche da un classico esempio:
Codice (Java): [Seleziona]
public void simpleNotification(View button) {
                notificationNumber++;
                // Creiamo la Notification
                Notification notification = new Notification(R.drawable.icon,
                                "Simple Notification", System.currentTimeMillis());
                notification.number=notificationNumber;
                notification.flags |= Notification.FLAG_AUTO_CANCEL;
                // Impostiamo le altre informazioni tra cui l'Intent
                Intent intent = new Intent(this, NotificationActivity.class);
                intent.putExtra("notificationType", "Simple Notification");
                PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent,
                                PendingIntent.FLAG_CANCEL_CURRENT);
                notification.setLatestEventInfo(this, "Simple Notification",
                                "Simple Notification Extended", pIntent);
                // La lanciamo attraverso il Notification Manager
                notificationManager.notify(SIMPLE_NOTIFICATION_ID, notification);
        }

Qualcuno ha idee?

Grazie mille :-)
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;-)

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Resettare il Notification Number
« Risposta #1 il: 17 Gennaio 2012, 13:27:49 CET »
0
notificationNumber++....
non lo resetti mai?
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Auron

  • Utente junior
  • **
  • Post: 104
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone Android 2.2.1
  • Sistema operativo:
    Windows
Re:Resettare il Notification Number
« Risposta #2 il: 17 Gennaio 2012, 13:33:07 CET »
0
Eh ma quando lo dovrei resettare? Non posso mica a fine funzione....altrimenti ad una successiva notifica dello stesso tipo si resetta a 0 pur non avendo ancora cliccato sulla stessa.
Dove consigli di farlo il reset?
(Potrei farlo al massimo quando clicco sulla stessa...ma poi perderei il conteggio di tutte le altre notifiche rimaste non lette e qua mi riaggancio al problema dell'altro Topic che ho postato)
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;-)

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Resettare il Notification Number
« Risposta #3 il: 17 Gennaio 2012, 19:17:18 CET »
0
Eh ma quando lo dovrei resettare? Non posso mica a fine funzione....altrimenti ad una successiva notifica dello stesso tipo si resetta a 0 pur non avendo ancora cliccato sulla stessa.
Dove consigli di farlo il reset?
(Potrei farlo al massimo quando clicco sulla stessa...ma poi perderei il conteggio di tutte le altre notifiche rimaste non lette e qua mi riaggancio al problema dell'altro Topic che ho postato)
però quando clicchi sulla stessa puoi fare notificationNumber--
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Auron

  • Utente junior
  • **
  • Post: 104
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone Android 2.2.1
  • Sistema operativo:
    Windows
Re:Resettare il Notification Number
« Risposta #4 il: 17 Gennaio 2012, 19:34:50 CET »
0
Si ci ho pensato, il problema è che una volta fatta partire la notify del NotificationManager non so in quale funzione fare l'override del Click della notifica nella notification bar...Esiste? Perchè quello sarebbe l'unico modo per poterlo decrementare un attimo prima che parta l'Activity richiesta.
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;-)

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Resettare il Notification Number
« Risposta #5 il: 17 Gennaio 2012, 19:43:21 CET »
0
potresti mettere nel pending intent il numero di notifica, o un parametro che ti fa capire che l'activity si sta aprendo grazie a una notifica. In quel caso prendi notification number e lo decrementi
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Auron

  • Utente junior
  • **
  • Post: 104
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone Android 2.2.1
  • Sistema operativo:
    Windows
Re:Resettare il Notification Number
« Risposta #6 il: 17 Gennaio 2012, 23:11:53 CET »
0
Mmm...vediamo se ho capito cosa intendi:

Codice (Java): [Seleziona]
public void simpleNotification(View button) {
                notificationNumber++;
                // Creiamo la Notification
                Notification notification = new Notification(R.drawable.icon,
                                "Simple Notification", System.currentTimeMillis());
                notification.number=notificationNumber;
                notification.flags |= Notification.FLAG_AUTO_CANCEL;
                // Impostiamo le altre informazioni tra cui l'Intent
                Intent intent = new Intent(this, NotificationActivity.class);
                if(notificationNumber==1){
                        intent.putExtra("notificationType", "Simple Notification 1");
                        intent.putExtra("notifnumber", notificationNumber);
                }
                else{
                        if(notificationNumber==2)
                                intent.putExtra("notificationType", "Simple Notification 2");
                        intent.putExtra("notificationType", "Simple Notification 3 ecc");
                }
                PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent,
                                PendingIntent.FLAG_CANCEL_CURRENT);
                notification.setLatestEventInfo(this, "Simple Notification",
                                "Simple Notification Extended", pIntent);
                // La lanciamo attraverso il Notification Manager
                notificationManager.notify(SIMPLE_NOTIFICATION_ID, notification);
        }

I vari if(notificationNumber==N) li ho fatti per distinguere ad esempio quello che devo inviare all'Activity.

Mi hai chiesto di metterlo nel pendingIntent (l'unico modo per metterlo è metterlo nell'intent che a sua volta va nel pendingIntent)
Infatti ho inserito nell'intent: intent.putExtra("notifnumber", notificationNumber);

Sarò duro di comprensorio, ma non riesco a capire in quale punto decrementarlo °_°. Riusciresti a dirmi più specificatamente in che modo? Scusa se ti faccio sbattere così tanto...  :-(
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;-)

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Resettare il Notification Number
« Risposta #7 il: 17 Gennaio 2012, 23:59:10 CET »
0
è difficile spiegartelo perchè l'app è tua e non so come la gestisci!
Intendevo appunto di metterlo nell'intent come l'hai messo, poi, nell'activity che riceve questo intent, dal tuo codice: NotificationActivity
puoi decrementare il valore di notification number, prendere la notifica e cambiargli il valore.
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Auron

  • Utente junior
  • **
  • Post: 104
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone Android 2.2.1
  • Sistema operativo:
    Windows
Re:Resettare il Notification Number
« Risposta #8 il: 05 Febbraio 2012, 18:01:43 CET »
0
è difficile spiegartelo perchè l'app è tua e non so come la gestisci!
Intendevo appunto di metterlo nell'intent come l'hai messo, poi, nell'activity che riceve questo intent, dal tuo codice: NotificationActivity
puoi decrementare il valore di notification number, prendere la notifica e cambiargli il valore.

Ti chiedo scusa se ti rispondo solamente ora, ma ho incontrato altri problemi che mi han deviato altrove. Tornando a questo problema facciamo che dal Service contenente le varie notifiche viene inviato un in intero.
Ad esempio:

Codice (Java): [Seleziona]
//Variabile globale del Service
private int x=0;

intent = new Intent(this, DestinationActivity.class);
intent.putExtra("variabile", x);
pIntent = PendingIntent.getActivity(this, 0, intent,PendingIntent.FLAG_UPDATE_CURRENT);    
notification.setLatestEventInfo(this, "Invio variabile","Valore: "+x, pIntent);
notificationManager.notify(0, notification);

Attività di destinazione:

Codice (Java): [Seleziona]
public class DestinationActivity extends Activity {

        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.notification_activity);
                intent=new Intent();
                intent=getIntent();
                int x=intent.getIntExtra("variabile");
               
                x++;
               
                //Ora voglio inviare il valore aggiornato al Service. Come faccio?     
        }
}

Da quello che hai detto sembrerebbe possibile poter rispedire al Service la variabile che ho aggiornato dall'attività di destinazione. A me non vengono in mente idee, tu che soluzioni proponi?

Ti ringrazio
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;-)

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Resettare il Notification Number
« Risposta #9 il: 05 Febbraio 2012, 22:43:40 CET »
0
puoi registrare un broadcast receiver nel service, ed inviargli quindi il valore aggiornato!
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Auron

  • Utente junior
  • **
  • Post: 104
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone Android 2.2.1
  • Sistema operativo:
    Windows
Re:Resettare il Notification Number
« Risposta #10 il: 05 Febbraio 2012, 23:32:14 CET »
0
Giusto, non mi era venuto in mente  :D. Appena ho un attimo di tempo, mi ci metto e faccio qualche test  ;-)
Grazie mille
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;-)