Autore Topic: Salvataggio dati accelerometro su file  (Letto 1610 volte)

Offline Rosekarma84

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
Salvataggio dati accelerometro su file
« il: 08 Settembre 2014, 23:47:44 CEST »
0
Salve a tutti
Devo implementare un'app che rilevi i dati dell'accelerometro per periodi prolungati (anche nell'arco delle 24 ore) e salvi i campioni su file.
Per quanto riguarda il campionamento dei dati accelerometrici, ho implementato un service che implementa l'interfaccia SensorEventListener.
Funziona anche quando si disattiva lo schermo del telefono in quanto ho implementato un BroadcastReceiver che si pone in ascolto dell'evento Intent.ACTION_SCREEN_OFF e, quando questo si verifica, "deregistra" e "riregistra" il SensorEventListener.
I campioni accelerometrici vengono inseriti in un ArrayList.
Per salvarli su file, pensavo di implementare un BroadcastReceiver che si mettesse in attesa di un evento del tipo "sono trascorsi 15 minuti", fermasse il servizio che appunto raccoglie i campioni, scaricasse l'ArrayList su file e riprendesse il campionamento. In pratica ogni 15 minuti di campionamento salvo i dati su file.

Secondo voi, è la strategia giusta? Se sì, come si può implementare questo secondo BroadcastReceiver?
Se sono sulla strada sbagliata, potreste suggerirmi un modo per salvare i dati accelerometrici nell'arco di 24 ore?
Per quanto riguarda il salvataggio dei campioni su file, ho provato a utilizzare un AlarmManager, instanziato nel metodo onCreate() del service, ma a quanto pare non viene ricevuto. Potreste darmi una mano per piacere? Grazie

Offline tonno16

  • Utente storico
  • *****
  • Post: 1186
  • Respect: +57
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Salvataggio dati accelerometro su file
« Risposta #1 il: 09 Settembre 2014, 02:04:09 CEST »
0
Un service che raccoglie i dati in back ground.
Mettere un tiner impostato a 15 minuti? Alla scadenza scrivi su file.
Ovviamente togli la registrazione per il sensore.
Immagino che scrivere 15 min di dati su file sia abbastanza lungo. Forse devi implementare un thread apposto all'interno del service. Alla fine della scrittura riattivò il sensore e riparte il countdown. 
Non SK se convenga registrare 15 minuti e salvare  oppure registrare 2 minuti e salvare.

Però avevo un aop che salvava continuamente su file. Ricordo che aprendo questo file con un file manager si vedeva che il cursore aumentava costantemente in tempo reale


Offline Rosekarma84

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
Re:Salvataggio dati accelerometro su file
« Risposta #2 il: 09 Settembre 2014, 14:19:32 CEST »
0
Ciao, innanzitutto grazie per la tua risposta.
Scusami, ma non ho ben capito. Lasciando perdere la frequenza di salvataggio dei dati, per il momento, la mia idea era la seguente:
Ho già un background service, che implementa SensorEventListener per effettuare le letture accelerometriche.
Dovrei dire a tale servizio, ogni tot minuti/secondi(quello che è,  poco importa per ora), smetti di raccogliere dati dall'accelerometro (e questo lo faccio togliendo la registrazione del sensore), fai partire un thread che salva i dati precedentemente raccolti su file, rimettiti a raccogliere dati(registro nuovamente il SensorEventListener). Quello che non mi è chiaro è come faccio a dire al mio service di fare tutte queste cose ogni tot minuti? Ho provato a usare un AlarmManagerm e a scrivere sul logcat qualora l'allarme fosse stato ricevuto, ma non è successo niente. E' possibile che l'alarm manager non funzioni all'interno di un service se non c'è un'activity di mezzo? Se invece volessi registrare all'interno del service un broadcast receiver che riceve appunto l'evento "sono passati tot minuti", come potrei fare? Potresti farmi un esempio molto semplificato?
Grazie

Offline tonno16

  • Utente storico
  • *****
  • Post: 1186
  • Respect: +57
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Salvataggio dati accelerometro su file
« Risposta #3 il: 09 Settembre 2014, 15:58:04 CEST »
0
Guarda la classe CountDownTimer nativa. Imposti un timer semplice semplice

Offline Rosekarma84

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
Re:Salvataggio dati accelerometro su file
« Risposta #4 il: 10 Settembre 2014, 10:52:00 CEST »
0
Capito, ora è tutto molto più chiaro. Ti ringrazio di cuore