Android Aile de mucchin | lié (capteur) Capteur



Comment obtenir la liste des capteurs (Sensor) qui prennent en charge


Android app à partir, comment obtenir la liste des (capteur) Capteur qui sont pris en charge par l'équipement réel?

Comment obtenir des applications de l'Android capteur, que le soutien, procédez comme suit.


Obtient le SensorManager première instance.

SensorManager sm = (SensorManager) getSystemService (SENSOR_SERVICE);


La prochaine étape est, en principe, j'ai deux manières, l'une est tournée (obsolète) Obsolète.
Mais ne se limite pas à Android, Java dire en général, essentiellement, l'API a été désapprouvée et sera assurez-vous que vous n'utilisez pas.
La première étape consiste à introduire des méthodes obsolètes intentionnellement.


Utilisez la touche () SensorManager.getSensors.

int = capteur sm.getSensors ();

La valeur de retour est de type int.
La valeur de retour, la valeur d'un bit drapeau d'état debout correspondant à chaque capteur qui appui seront retournés.
Par exemple, s'il ya un capteur d'orientation est mesurée par une expression telle que la décision suivante.

if ((capteur & SensorManager.SENSOR_ORIENTATION)! = 0) {
/ / Si cette option si capteur d'orientation déclaration, sont pris en charge
}


La raison pour laquelle la méthode ci-dessus a été désapprouvée, mais je ne sais pas, par rapport à la façon d'être introduite plus tard, et je pense que je ne suis pas très bonne facilité d'utilisation.
Ce qui suit est la méthode recommandée. Il ya un sentiment par rapport à la non-recommandée version, il était comme un coup d'oeil plus orienté objet.




Utilisez le bouton () SensorManager.getSensorList.

Liste <sensor> list = sm.getSensorList (Sensor.TYPE_ALL);

La valeur de retour est de capteur type List.
Argument, vous spécifiez le capteur que vous voulez obtenir, si vous voulez obtenir le capteur de tout ce soutien, spécifiez le Sensor.TYPE_ALL tel que décrit ci-dessus.
Liste comme suit: Lorsque la valeur de retour, vous pouvez déterminer si ce que le capteur est pris en charge.

pour (s Capteur: liste) {
/ / Par exemple, mettre une bûche dans le nom du capteur
Log.i (s.getName ());
/ / Par exemple, pour connecter le type de problème de capteur
Log.i (s.getType ());
}

Valeur de retour (), mais c'est le type de capteur getType.
Par exemple, si un capteur indique que le capteur d'orientation, TYPE_ORIENTATION est retourné.


Si vous souhaitez utiliser le capteur, je vais enregistre également l'auditeur de la sonde.
Depuis lors, la façon dont les schémas ci-dessus et obsolètes, voici le modèle recommandé.
Si le premier est obsolète.


Utilisez le bouton () SensorManager.registerListener.
Si vous souhaitez enregistrer tous les capteurs sont pris en charge, par exemple, est quelque chose comme ce qui suit.

int = capteur sm.getSensors ();
sm.registerListener (ce capteur,);

Le premier argument spécifie l'instance qui implémente l'SensorListener.
Le deuxième argument est la valeur du bit de la somme du capteur que vous souhaitez enregistrer.
En fait, cette interface SensorListener appelé lui-même, a été désapprouvée.
a été désapprouvée registerListener (), et aussi cet usage.


Ce qui suit est la méthode recommandée.
Utilisation de la () SensorManager.registerListener, et l'argument ci-dessus est différent.
Si vous souhaitez enregistrer tous les capteurs sont pris en charge, par exemple, est quelque chose comme ce qui suit.

Liste <sensor> list = sm.getSensorList (Sensor.TYPE_ALL);
pour (s Capteur: liste) {
sm.registerListener (ce, s);
}

Le premier argument, plutôt que SensorListener, sera une instance qui implémente l'SensorEventListener.
Le second argument spécifie l'instance Type de capteur d'être enregistré.

L'événement sera notifiée par () onSensorChanged d'une instance qui implémente l'SensorEventListener.
D'après les arguments, vous pouvez obtenir une instance de la SensorEvent type.
Alors, cette fois, nous avons ici, à l'occasion d'une autre, à l'égard de gestion de l'événement.


Cet article, quand je savoir comment obtenir une liste de capteur précédent (), qui avait été pour la (obsolète), ont été examinés de la référence de l'API est obsolète SensorManager.getSensors.
L'exemple de code qui a été publié dans les livres et sur le net, il peut y avoir eu de problème avec (obsolète) Déconseillé à partir de cette époque.
À ce moment-là, si vous regardez à la référence de l'API pour Android, maintenant ce qui a été recommandée dont l'API? S'il vous plaît se référer à un si facile de voir que.
La référence de l'API qui vient avec Android SDK, et voir le () SensorManager.getSensors obsolètes, a été décrite comme suit.
Comment obtenir la liste des capteurs (Sensor) qui prennent en charge
Ce, et vous savez! "Pourquoi devrais-je utiliser (Sensor.TYPE_ALL) getSensorList".


Par ailleurs, le traitement de l'API de référence Ali, s'il vous plaît consultez les articles suivants.
L'emplacement de la référence API Android