14

私は自分のプロジェクト用のAndroidアプリを開発していますが、その一部として室温を見つける必要があります。テストにはDroid2A955モデルを使用しています。

私の質問は次のとおりです。

  1. この温度検知タスクを実行するには、Androidフォンでどのセンサーを使用できる必要がありますか?

  2. 周囲光センサー(Droid 2で利用可能)はこのタスクの実行に役立ちますか?

  3. 私のAndroidコードでプログラムで室温を検出/検知するAndroidAPIはありますか?

よろしくお願いします。

4

9 に答える 9

12

あなたの 3 つの質問すべてに一気に答えるなんて、いや、そうは思いません。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.)

アップデート:

API レベル 14 (つまり、Android 4.0) 以降では、周囲温度の測定のサポートが追加されました (経由TYPE_AMBIENT_TEMPERATURE)。[Android ドキュメント リファレンス]

ただし、これは周囲温度センサーを備えたデバイスでのみ機能します。

于 2011-08-08T16:50:07.743 に答える
11

APIに新しいセンサーがあるようです。

これは周囲温度用ですが、これが実装されているデバイスはおそらく少数です。

更新:Galaxy S4は、周囲温度センサーを統合した最初の電話のようです

于 2012-07-24T10:29:22.720 に答える
2

Sensor のリファレンス ドキュメントを確認してください。ただし、ほとんどのハンドヘルドに搭載されているアクセス可能な温度センサーはないと思います。

于 2011-08-08T16:41:23.080 に答える
2

ドキュメントの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) {
 }
}

これにより、それ自体のアクティビティで温度センサーにアクセスできるようになります。

これで遊んで、何が見つかるか見てみましょう。ドキュメントには、他のタイプのセンサーの優れた例があります。温度センサーは、提供されているほとんどのセンサーよりもさらに単純である必要があります。

お役に立てれば!

于 2011-08-08T16:43:01.587 に答える
0

これは興味深いですね:

http://developer.android.com/reference/android/hardware/Sensor.html#TYPE_AMBIENT_TEMPERATURE

API >= 13 から

于 2014-01-30T14:11:05.757 に答える
0

これを試してください:

private float temperature = 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);
    }

そして、以下の方法:

private final SensorEventListener AmbientTemperatureSensorListener
            = new 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];
            }
        }

    };
于 2016-11-01T12:46:25.897 に答える
0

私はずっと前にあなたの質問と同じです。そして、私が見つけたのは:

  • 環境センサーについては、この公式サイトを確認してください
  • this tuts for environment sensor : Ambient Temperature (room temp) Ambient Light ... Tutsplus . 私の電話でのみアンビエントライトが機能します
  • 私が知っているように、サムスンギャラクシーS4だけが周囲温度を持っています。S4 がある場合は、gg playstore で Holo Ambient Temperature を検索します。
于 2013-08-15T10:09:46.140 に答える