Comment savoir si un capteur est présent sur mon appareil Android?

Je voudrais savoir si un capteur (par exemple l'accéléromètre) est présent sur mon appareil Android.

Je traite de la classe SensorManager. Voici le code que j'utilise:

sensorMgr = (SensorManager) getSystemService(SENSOR_SERVICE); sensorMgr.registerListener(this,sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),1); 

Je vous remercie.

  • Pourquoi il existe une différence dans les valeurs magnétiques prises par les différents smartphones?
  • Afficher la direction du lieu avec la flèche dans Android ListView
  • Acquérir les données du capteur sur les plates-formes Android
  • Obtenir une valeur de luxe à partir d'un capteur de lumière sans événement OnSensorChanged ()?
  • Android: capteurs
  • Extraire le lacet, le pitch et le roulement d'une rotationMatrix
  • SENSOR_DELAY_GAME: combien en est-il?
  • Android: Shake Detector too Sensitive
  • 4 Solutions collect form web for “Comment savoir si un capteur est présent sur mon appareil Android?”

    Votre deuxième ligne peut être utilisée pour ceci:

     boolean accelerometer; accelerometer = sensorMgr.registerListener(this,sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); if(accelerometer) { . . } 

    Regardez ici:

    http://developer.android.com/reference/android/content/pm/PackageManager.html

    Si vous pensez que vous devez le faire:

     PackageManager manager = getPackageManager(); boolean hasAccelerometer = manager.hasSystemFeature(PackageManager.FEATURE_SENSOR_ACCELEROMETER); 

    Voici recommandation de developer.android.com: http://developer.android.com/guide/topics/sensors/sensors_overview.html#sensors-identify

    Vous pouvez déterminer si un type spécifique de capteur existe sur un périphérique en utilisant la méthode getDefaultSensor () et en passant la constante de type pour un capteur spécifique. Si un appareil possède plus d'un capteur d'un type donné, l'un des capteurs doit être désigné comme capteur par défaut. Si un capteur par défaut n'existe pas pour un type de capteur donné, l'appel de méthode renvoie nulle, ce qui signifie que le périphérique n'a pas ce type de capteur.

     private SensorManager mSensorManager; ... mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); if (mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD) != null){ // Success! There's a magnetometer. } else { // Failure! No magnetometer. } 

    Puisque j'ai une erreur requise pour l'API9, j'utilise à la place:

      SensorManager mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); List<Sensor> deviceSensors = mSensorManager.getSensorList(Sensor.TYPE_ALL); for (int i = 0; i< deviceSensors.size(); i++) { if (deviceSensors.get(i).getType() == Sensor.TYPE_PRESSURE) { mHasBarometer = true; break; } } 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.