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.

  • Obtenir une valeur de luxe à partir d'un capteur de lumière sans événement OnSensorChanged ()?
  • Android AllJoyn: la connexion avec la deuxième machine donne l'erreur de BusAttachement
  • Acquérir les données du capteur sur les plates-formes Android
  • Android: Shake Detector too Sensitive
  • Android: capteurs
  • Comment calculer correctement l'accélération linéaire à l'aide d'AcceleroMeter dans Android
  • Android: Comment obtenir les données Google Fit à partir du périphérique Wearable?
  • SENSOR_DELAY_GAME: combien en est-il?
  • 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.