【发布时间】:2018-04-14 16:11:56
【问题描述】:
我正在尝试使用 Android Studio 中的蓝牙从光传感器发送光数据。一旦用户按下按钮,传感器值应该会不断更新并发送到另一部手机。
我修改了一些我在网上找到的蓝牙代码;但是,光传感器值不会不断更新,它只是显示按下按钮时传感器的值。
我尝试过在设置开始标志后每 5 秒运行一次计时器,以便不断发送来自光传感器的新值,但它不起作用。
有没有一种方法可以在按下按钮后对传感器进行采样并发送不断更新的传感器数据?提前致谢。
这是获取传感器读数并将其传递给按钮侦听器代码的代码:
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
Sensor sensor = sensorEvent.sensor;
if (sensor.getType() == Sensor.TYPE_LIGHT) {
lightText.setText("Light = " + sensorEvent.values[0]);
float lightTemp = sensorEvent.values[0];
implementListeners(lightTemp);
}
}
按钮监听器 - 监听用户按下开始按钮,然后将传感器读数写入代码的蓝牙部分(然后发送到另一部手机):
private void implementListeners(final float lightTemp) {
.
.
.
.
startBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int startFlag=1;
checkStartFlag(startFlag);
}
private void checkStartFlag(int startFlag) {
if (startFlag==1){
Timer timer = new Timer ();
TimerTask checkSec = new TimerTask () {
@Override
public void run () {
String string= String.valueOf(lightTemp);
sendReceive.write(string.getBytes());
}
};
timer.schedule (checkSec, 0l, 5000); // Check every 1 sec
}
}
});
}
【问题讨论】:
标签: java android bluetooth sensors