Autore Topic: ricavare tutti i pending intent  (Letto 1081 volte)

Offline mambu

  • Utente normale
  • ***
  • Post: 167
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7
ricavare tutti i pending intent
« il: 11 Giugno 2012, 10:36:44 CEST »
0
Salve a tutti, ho creato un applicazione che viene eseguita e poi una volta finita, tramite alarm manager (di conseguenza un pending intent) ripartirà dopo tot tempo. Ora sto scrivendo un'altra applicazione che monitora il funzionamente della precedente, mi farebbe comodo riuscire a capire se è presente il pending intent. Come posso ricarvalo?oppure come posso capirlo da codice?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:ricavare tutti i pending intent
« Risposta #1 il: 11 Giugno 2012, 10:56:54 CEST »
0
L'ultima volta che mi ero interessato a questo argomento, avevo scoperto che non c'era modo di ottenere i PendingIntent del sistema.  :-(

Se nel frattempo le cose sono cambiate, mi interessa moltissimo.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline mambu

  • Utente normale
  • ***
  • Post: 167
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:ricavare tutti i pending intent
« Risposta #2 il: 11 Giugno 2012, 11:09:41 CEST »
0
anche io cercando e ricercando non ho trovo una risposta decente, l'unica cosa che ho trovato è da adb e non tramite codice.
Tramite il comando "adb shell dumpsys alarm".
Pastrugnando un po però questa soluzione non è proprio male, se tramite un exec lo lanci e analizzi l'output dovresti riuscire a capire quali e quanti allarmi hai in partenza e fra quanto partiranno.

Unico difetto: Il device dev'essere rooted, cosa che per me fortunatamente non è problema:) peccato che però non funziona sempre!

Offline mambu

  • Utente normale
  • ***
  • Post: 167
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:ricavare tutti i pending intent
« Risposta #3 il: 11 Giugno 2012, 11:19:14 CEST »
0
si posso confermare quanto detto. con il seguente codice puoi vederne lo stato, in questo caso io l'ho filtrato per la mia applicazione:
Codice (Java): [Seleziona]
try {
                        cmdReboot = Runtime.getRuntime().exec("su -c dumpsys alarm");
                        cmdReboot.waitFor();
                          BufferedReader bufferedReader = new BufferedReader(
                                      new InputStreamReader(cmdReboot.getInputStream()));
                                      StringBuilder log=new StringBuilder();
                                      String line;
                                     int righe=3;
                                      while ((line = bufferedReader.readLine()) != null) {
                                        if(line.contains("mambu")||righe<3){
                                                if(--righe==0) righe=3;
                                                log.append(line);      
                                        }
                                      }
                                    Log.v("linea","finito" + log);
                } catch (IOException e) {
                        e.printStackTrace();
                } catch (InterruptedException e) {
                        e.printStackTrace();
                }


ottenendo il seguente log

Codice: [Seleziona]
06-11 11:32:53.945: V/out(3151):   RTC_WAKEUP #2: Alarm{41afa7f0 type 0 com.mambu}    type=0 when=+9m29s650ms repeatInterval=0 count=0    operation=PendingIntent{41b2b408: PendingIntentRecord{41b1dc88 com.mambu broadcastIntent}}

per me la soluzione regge e spero non sia troppo instabile!;D
« Ultima modifica: 11 Giugno 2012, 11:34:09 CEST da mambu, Reason: improve »