Android: Alternative à onSensorChanged? pas de données de l'accéléromètre lorsque le téléphone est couché sur le dos sur une table (quand aucun mouvement)

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

Question

Je suis en utilisant ce code pour obtenir les données d'accéléromètres. Quand je suis en mode DDMS pour vérifier ce que ma déclaration d'impression est en cours, j'ai remarqué que rien est imprimé lorsque le téléphone ne se déplace pas. c'est à dire. c'est sur la table. Je pense que la raison est que onSensorChanged n'est pas appelé lorsque le téléphone ne bouge pas, puis son appelé lorsque le téléphone commence à se déplacer à nouveau. Si je veux des données de capture indépendamment du fait que le téléphone est en mouvement ou non, dois-je utiliser une autre fonction? Toutes les solutions de rechange? ou une solution? Toute aide appréciée.

Merci!

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());

}
Était-ce utile?

La solution

Vous pouvez avoir un fil d'écoute aux changements de capteurs (c.-à-onSensorChanged() qui va écrire les données dans les variables globales) et un autre thread en cours d'exécution d'une minuterie (regardez postDelayed, http://developer.android.com/reference/android/os/Handler.html ) qui lira parfois ensemble. S'il n'y a aucun changement, il sera lu à nouveau les mêmes données. Facile, propre et agréable à la batterie.

Autres conseils

Si cette méthode est appelée uniquement lorsque « les changements de capteurs », essayez d'enregistrer les valeurs que vous lisez quand il est exécuté. Si la méthode est pas appelé cela ne signifie pas que les valeurs sont les mêmes?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top