Подтвердить что ты не робот

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

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

Мои вопросы:

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

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

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

Заранее благодарим за помощь.

4b9b3361

Ответ 1

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

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

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

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

Device implementations MAY but SHOULD NOT include a thermometer (i.e. 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.)

Update:

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

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

Ответ 2

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

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

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

Ответ 3

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

Ответ 4

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

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

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) {
 }
}

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

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

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

Ответ 5

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

Ответ 6

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

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

Ответ 8

Попробуйте следующее:  частная температура плавания = 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];
        }
    }

};

Ответ 9

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

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

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

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