Есть ли какой-либо Android api для поиска/определения комнатной температуры программно в коде Android?
Я разрабатываю приложение для Android для своего проекта, мне нужно найти комнатную температуру как часть этого. Я использую модель Droid 2 A955 для тестирования.
Мои вопросы:
-
Какие датчики должны быть доступны на моем телефоне Android для выполнения
эта задача измерения температуры?
-
Может ли датчик окружающего света (доступный в Droid 2) помочь в этом
задача?
-
Есть ли какой-либо Android api для поиска/определения комнатной температуры
программно в моем коде Android?
Заранее благодарим за помощь.
Ответы
Ответ 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.
Ответ 7
Это звучит интересно:
http://developer.android.com/reference/android/hardware/Sensor.html#TYPE_AMBIENT_TEMPERATURE
из API >= 13
Ответ 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 футов, чтобы он стабилизировался. Затем молитесь о линейности.
Эмпирическое всегда приятно. Мне очень интересно измерять постоянную температуру в пустом доме и следить за тем, чтобы температура снижалась (или поднималась!!)
Брэдшоу в Бухте Баззард