我如何查看x小时内温度的变化,然后发送警报



我有一个应用程序,它用手机传感器向我显示当前温度,但我想看看一小时内温度变化了多少,并向用户发送通知。

例如,如果当前温度为30°C,并且在一小时内温度下降了5°C(24°C或更低(,我想向用户发送通知,并告诉他们要注意或其他什么。

我已经制作了一个基本的应用程序,可以在温度变化时向我显示温度值,但我不知道下一步该怎么办。

后期编辑*这是我创建的服务类,现在我正在努力理解流程,但这对我来说很难。这将如何工作?我的意思是,我如何在onStartCommand方法中每小时存储一次onSensorChanged的温度值?

public class TemperatureService extends Service implements SensorEventListener {
private SensorManager sensorManager;
private Sensor temperatureSensor;
private boolean isTemperatureSensorPresent;
private float lastKnownTemp;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
sensorManager = (SensorManager) this.getSystemService(Context.SENSOR_SERVICE);
if(sensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE) != null) {
temperatureSensor = sensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE);
isTemperatureSensorPresent = true;
} else{
isTemperatureSensorPresent = false;
}
if(isTemperatureSensorPresent) {
sensorManager.registerListener(this, temperatureSensor, SensorManager.SENSOR_DELAY_NORMAL);
}
return Service.START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
lastKnownTemp = sensorEvent.values[0];
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}

创建一个服务来读取后台的温度,并将通知发送给用户。

折叠文档:

https://developer.android.com/guide/components/services

创建一个从服务扩展的类

public class TemperatureService extends Service {
}

并在清单中定义为:

<application ... >
<service android:name=".TemperatureService" />
...
</application>

相关内容

最新更新