Intereting Posts
Android – выпадающий список / выбор Spinner не показывает Начать настройку в адаптере Google размещает API, получает адреса пользователей Android AutoCompleteTextView onItemSelectedListener не запускается с помощью клавиатуры bluetooth Как продлить действие двухклассных Android? Установка звукового файла в качестве мелодии звонка Как установить разделитель (до нуля) настраиваемого макета ListFragment Инициализировать дату в android datepicker на определенную дату, то есть не текущую дату. Как добавить детей к дочерним элементам, используя jsoup document Как отправить объект JSON через запрос HttpClient с Android? Обнаруживать браузер Android или WebView Как зеркалировать файл изображения? (2.2+) Широковещательный приемник работает по-разному на разных версиях Android (4.1.1 и 4.2.2) Android Возможно ли разместить шаблон ограничения внутри ScrollView Несколько экземпляров запуска одного и того же приложения в kitkat android

Как узнать, присутствует ли сенсор на моем устройстве Android?

Я хотел бы узнать, присутствует ли на моем устройстве Android датчик (например, accellerometer).

Я имею дело с классом SensorManager. Вот код, который я использую:

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

Спасибо.

Solutions Collecting From Web of "Как узнать, присутствует ли сенсор на моем устройстве Android?"

Для этого можно использовать вторую строку:

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

Загляните сюда:

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

Если вы думаете, что вам нужно это сделать:

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

Вот рекомендация от developer.android.com: http://developer.android.com/guide/topics/sensors/sensors_overview.html#sensors-identify

Вы можете определить, существует ли определенный тип датчика на устройстве, используя метод getDefaultSensor () и передавая константу типа для определенного датчика. Если устройство имеет более одного датчика данного типа, один из датчиков должен быть обозначен как датчик по умолчанию. Если для датчика определенного типа не существует датчика по умолчанию, вызов метода возвращает значение null, что означает, что устройство не имеет такого типа датчика.

 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. } 

Поскольку я получаю ошибку API9, я использую вместо этого:

  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; } }