2015-05-03 68 views
-1

我有一個sensor的我的溫度傳感器,和我用templat從Android庫:如何在android項目中顯示來自sensormanager類的信息?

public class SensorActivity extends Activity, implements SensorEventListener { 
    private final SensorManager mSensorManager; 
    private final Sensor mAccelerometer; 

    public SensorActivity() { 
     mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE); 
     mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 
    } 

    protected void onResume() { 
     super.onResume(); 
     mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL); 
    } 

    protected void onPause() { 
     super.onPause(); 
     mSensorManager.unregisterListener(this); 
    } 

    public void onAccuracyChanged(Sensor sensor, int accuracy) { 
    } 

    public void onSensorChanged(SensorEvent event) { 
    } 
} 

但隨着溫度而不是加速度計。

不幸的是,我不知道如何從這裏到我的主要活動的實際數字,我可以顯示的形式,最好以不斷更新的方式。

回答

1

通過傳感器測量的值通過onSensorChanged方法接收。這就是爲什麼你必須實現SensorEventListener並將你的類註冊爲監聽器。只要傳感器讀取的值發生變化,就會調用它,這樣您就可以做任何需要做的事情來顯示其中的數據,並且只要該類被註冊爲偵聽器,它就會不斷更新。

在你的情況下,你可能想讓你的MainActivity(如果這是顯示數據的地方)實現SensorEventListener接口,並遵循與你發佈的例子類似的模式。

使用SensorEvent參數將測量值(以及一些其他重要信息)傳遞給您。有關如何從給定對象提取數據的更多詳細信息,請參閱該類的Documentation

正如上面鏈接的文檔中提到的,測得的溫度被存儲在數組的值的第一個時隙,從而可以這樣

public void onSensorChanged(final SensorEvent event) { 
    final float temperature = event.values[0]; 
    // Now that you have the temperature value, you can do 
    // whatever you want with it 
    this.doSomethingWithTemperatureValue(temperature); 
} 
提取它
相關問題