La bonne réponse est Answer 1, la version qui utilise PackageManager.
SensorManager et Sensor font partie d'Android Sensor Framework et sont utilisés pour l'accès direct et l'acquisition de données brutes de capteur. Ces classes ne fournissent aucune méthode comme hasSystemFeature () qui est utilisée pour l'évaluation des capacités du système.
Android définit des IDs de fonctionnalité, sous la forme d'ENUM, pour toute fonctionnalité matérielle ou logicielle pouvant être disponible sur un appareil. Par exemple, l'ID de fonction du capteur de boussole est FEATURE_SENSOR_COMPASS.
Si votre application ne peut pas fonctionner sans qu'une fonctionnalité spécifique soit disponible sur le système, vous pouvez empêcher les utilisateurs d'installer votre application avec un élément <uses-feature> dans le fichier manifeste de votre application pour spécifier une dépendance non négociable.
Cependant, si vous souhaitez simplement désactiver des éléments spécifiques de votre application lorsqu'une fonctionnalité est manquante, vous pouvez utiliser la classe PackageManager. PackageManager est utilisé pour récupérer divers types d'informations liées aux packages d'application actuellement installés sur l'appareil.