Intereting Posts
Слушать кнопки громкости в фоновом режиме? ActionLayout для элементов навигации отображается с правой стороны Отображение мягкой клавиатуры при открытии объекта AlertDialog.Builder Отладчик Android Studio не останавливается на контрольных точках в библиотечных модулях Скорость замедленного просмотра контроллера Viewpager в android Как добавить параметр меню и настроек в настраиваемую панель заголовков Android? AysncTask отменяет сам по-прежнему вызывает onPostExecute () Кнопки виджета Android перестают работать Android добавляет простые анимации, а setvisibility (view.Gone) Как настроить Android SeekBar для того, чтобы он был неуправляемым / замороженным? Установка ADT на Eclipse Android изменить цвет текста элементов в прядильщике Edittext меняет цвет границы с помощью shape.xml Отображение изображения приложения Android из URL Как позвонить в список контактов 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; } }