Есть ли какой-либо Android api для поиска / определения комнатной температуры программно в коде Android?

Я разрабатываю приложение для Android для своего проекта, мне нужно найти комнатную температуру как часть этого. Я использую модель Droid 2 A955 для тестирования.

Мои вопросы:

  1. Какие датчики должны быть доступны на моем телефоне Android для выполнения этой задачи измерения температуры?

  2. Может ли датчик окружающего света (доступный в Droid 2) помочь в выполнении этой задачи?

  3. Есть ли какой-либо Android api для поиска / определения комнатной температуры программно в моем коде Android?

Заранее спасибо за вашу помощь.

Solutions Collecting From Web of "Есть ли какой-либо Android api для поиска / определения комнатной температуры программно в коде Android?"

Чтобы ответить на все три вопроса одним махом, нет, я так не верю. В устройствах Android может быть датчик температуры, но он определяет температуру батареи, а не температуру наружного воздуха. Это не обеспечило бы точной калибровки для этой цели.

Я не уверен, как датчик окружающего света поможет с температурой, он может быть очень ярким, но он может быть в комнате с кондиционером.

Наконец: есть много примеров температурных приложений, но опять же, большинство из них связано с батареей.

Изменить: Официальная документация говорит :

Device implementations MAY but SHOULD NOT include a thermometer (ie temperature sensor.) If a device implementation does include a thermometer, it MUST measure the temperature of the device CPU. It MUST NOT measure any other temperature. (Note that this sensor type is deprecated in the Android 2.3 APIs.)

Обновить:

Уровень API 14 (например, Android 4.0), добавлена ​​поддержка измерения температуры окружающей среды (через TYPE_AMBIENT_TEMPERATURE ). [Ссылка на Android dod]

Это, однако, будет работать только на устройствах с датчиком температуры окружающей среды.

Кажется, что в API появился новый датчик .

Это для окружающей температуры, но, вероятно, есть всего несколько устройств с этим реализовано.

ОБНОВЛЕНИЕ: кажется, что Galaxy S4 является первым телефоном, интегрирующим датчик температуры окружающей среды

Вы захотите проверить справочные документы Sensor . Сверху, я не думаю, что есть доступные датчики температуры на борту большинства карманных компьютеров.

Взгляните на класс Sensor в документации.

Вам нужно что-то сделать в соответствии с этим :

 public class SensorActivity extends Activity, implements SensorEventListener { private final SensorManager mSensorManager; private final Sensor mTemp; public SensorActivity() { mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE); mtemp = mSensorManager.getDefaultSensor(Sensor.TYPE_TEMPERATURE); } protected void onResume() { super.onResume(); mSensorManager.registerListener(this, mTemp, SensorManager.SENSOR_DELAY_NORMAL); } protected void onPause() { super.onPause(); mSensorManager.unregisterListener(this); } public void onAccuracyChanged(Sensor sensor, int accuracy) { } public void onSensorChanged(SensorEvent event) { } } 

Это должно дать вам доступ к датчикам температуры в его собственной деятельности.

Играйте с этим и посмотрите, что вы можете найти. В документации есть отличные примеры для других типов датчиков, датчик температуры должен быть еще проще, чем большинство из представленных.

Надеюсь это поможет!

Вы можете использовать iCelsius Wireless от Kickstarter. Он имеет API. Невозможно точно измерить температуру с помощью внутреннего датчика от SmartPhone. Он всегда будет в несколько раз выше.

У меня такой же ваш вопрос давным-давно. И то, что я нашел:

  • Проверьте этот официальный сайт для датчика окружающей среды
  • Это относится к датчику окружающей среды: температура окружающей среды (комнатная температура) окружающего света … Tutsplus . На моем телефоне работает только Ambient Light
  • Теперь, как я знаю, только галактика S4 Samsung имеет температуру окружающей среды. Если у вас есть S4 поиск Holo Ambient Temperature на gg playstore.

Попробуйте это: приватная температура плавания = 0;

В onCreate введите этот код:

  SensorManager mySensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); Sensor AmbientTemperatureSensor = mySensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE); if (AmbientTemperatureSensor != null) { mySensorManager.registerListener( AmbientTemperatureSensorListener, AmbientTemperatureSensor, SensorManager.SENSOR_DELAY_NORMAL); } 

И метод ниже:

Закрытый конечный SensorEventListener AmbientTemperatureSensorListener = новый SensorEventListener () {

  @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { // TODO Auto-generated method stub } @Override public void onSensorChanged(SensorEvent event) { if (event.sensor.getType() == Sensor.TYPE_AMBIENT_TEMPERATURE) { temperature = event.values[0]; } } }; 

Существует старый метод, позволяющий телефону и «хороший» термометр стабилизироваться при комнатной температуре (несколько часов) и читать оба.

Затем выложите его в красивый зимний гараж примерно на 35 футов, чтобы он стабилизировался. Затем молитесь о линейности.

Эмпирическое всегда приятно. Мне очень интересно измерять постоянную температуру в пустом доме и следить за тем, что температура падает (или растет !!)

Брэдшоу в бухте Баззард