Android: Alternativa a onSensorChanged? nessun dati dell'accelerometro quando il telefono è sdraiato sulla schiena su un tavolo (quando nessun movimento)

StackOverflow https://stackoverflow.com/questions/5804142

Domanda

Così sto usando questo codice per ottenere i dati accelerometro. Quando sono in modalità DDMS per verificare cosa sta stampando la mia dichiarazione di stampa, ho notato che nulla viene stampato quando il telefono non si muove. vale a dire. è sul tavolo. Credo che il motivo è che onSensorChanged non viene chiamato quando il telefono non si muove, e quindi la sua chiamata quando il telefono inizia a muoversi di nuovo. Se voglio la raccolta dei dati indipendentemente dal fatto che il telefono è in movimento o no, devo usare qualche altra funzione? Eventuali alternative? o Qualsiasi soluzione? Qualsiasi aiuta apprezzato.

Grazie!

public void onSensorChanged(SensorEvent event) {  

    StringBuffer buff = new StringBuffer();
    buff.append(String.valueOf(event.timestamp));
    buff.append(comma);
    buff.append(String.valueOf(event.values[0]));
    buff.append(comma);
    buff.append(String.valueOf(event.values[1]));
    buff.append(comma);
    buff.append(String.valueOf(event.values[2]));

    mCurrentFile.println(buff.toString());
    mCurrentFile.write(buff.toString()+ '\n');

    System.out.println( "**" + buff.toString());

}
È stato utile?

Soluzione

Si può avere un ascolto filo ai cambiamenti del sensore (ad esempio, onSensorChanged() che scriverà i dati in variabili globali) e un altro thread in esecuzione di un timer (sguardo a postDelayed, http://developer.android.com/reference/android/os/Handler.html ) che lo leggerà ad orari prestabiliti. Se non ci sono cambiamenti, allora sarà letto di nuovo gli stessi dati. Facile, pulito, bello e alla batteria.

Altri suggerimenti

Se questo metodo viene chiamato solo quando "i cambiamenti del sensore", provare a salvare i valori che si leggono quando è eseguito. Se il metodo non viene chiamato ciò non significa che i valori sono gli stessi?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top