2017-01-27 3 views
3

Existe-t-il un moyen d'obtenir un nom générique d'un capteur? Au moment où mon application permet à l'utilisateur de sélectionner un capteur à partir d'une liste. Selon le capteur, l'application doit faire différentes choses.Un nom de capteur générique

J'ai essayé de le faire avec une instruction de cas de commutation et en utilisant le nom du capteur comme paramètre. Mais puisque les noms des capteurs sont spécifiques au modèle de mon téléphone, les cas ne fonctionneraient pas sur d'autres téléphones. Par exemple, le «Capteur de mouvement significatif SAMSUNG» ne déclenchera pas de capteur de mouvement dans un téléphone Nexus.

J'ai essayé d'utiliser getType(), pour obtenir le type du capteur. Mais tous les capteurs n'ont pas de type.

Ma question est la suivante: existe-t-il un moyen d'obtenir le nom d'un capteur qui fonctionnerait sur tous les téléphones?

switch(sensorName){ 
     case "K330 3-axis Accelerometer": 
      Toast.makeText(getActivity(),"Case 1: "+ sensorName, Toast.LENGTH_SHORT).show(); 
      break; 
     case "YAS532 Magnetic Sensor": 
      Toast.makeText(getActivity(), "Case 2: "+sensorName, Toast.LENGTH_SHORT).show(); 
      break; 
     case "K330 Gyroscope sensor": 
      Toast.makeText(getActivity(),"Case 3: "+ sensorName, Toast.LENGTH_SHORT).show(); 
      break; 
     case "Barometer Sensor": 
      break; 
     case "MAX88920 Proximity Sensor": 
      break; 
     case "CM3323 RGB Sensor": 
      break; 
     case "SAMSUNG Significant Motion Sensor": 
      break; 
     default: 
      break; 
    } 
+1

juste une idea simple, sans savoir comment les noms de capteurs sont sur différents appareils. pourquoi ne cherchez-vous pas sensorName.contains ("Accelerometer") au lieu du nom complet qui est spécifique à l'appareil la plupart du temps? – IIIIIIIIIIIIIIIIIIIIII

+0

'case sensorName.contains (" Step Counter "):' Est-ce ce que vous suggérez? Euhm ça me dit Obligatoire: String Trouvé: Boolean. Pouvez-vous fournir un exemple de code, je pourrais mal comprendre ce que vous voulez dire – Amar

+1

Je le ferais avec if (sensorName.contains ("Step Counter")) {// blabla} else if (sensorName.contains ("Accéléromètre")) {//blabla} vous ne pouvez pas faire .contains() dans un commutateur – IIIIIIIIIIIIIIIIIIIIII

Répondre

2

Vous pouvez essayer de simplement vérifier si le sensorName contient mots à la mode comme « Accéléromètre », « Motion Sensor », etc.

if(sensorName.contains("Accelerometer")) { 
    //do stuff 
} else if(sensorName.contains("Motion Sensor")) { 
    //do stuff 
}