微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Android Studio中每隔X秒获取心率?

如何解决如何在Android Studio中每隔X秒获取心率?

我想每x秒从心率传感器获取次数据。 我使用postDelayed()进行了尝试,但是它只能用于每x秒读取一次数据,但是传感器当时正在运行,并且电池消耗非常快。 我正在尝试找到一种方法来启动传感器,获取数据并每x秒停止传感器。

这是我到目前为止所做的:

final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            checkHR = true;
            handler.postDelayed(this,10000);
        }
    },1);

public void onSensorChanged(SensorEvent event) {
    if(checkHR == true){
        if (event.sensor.getType() == Sensor.TYPE_HEART_RATE) {
            String msg = "" + (int)event.values[0];
            heartRate = (int)event.values[0];
            Log.d("Heart rate is:",msg);
            checkHR = false;
        }
    }

解决方法

unregisterListener中获取了一些数据后,您是否尝试过onSensorChanged?并在postDelayed触发时重新注册。也许这就是为什么传感器仍在工作(即使checkHR=false时仍保持注册状态的传感器)并耗尽电池电量的原因。您可以显示如何注册此侦听器吗?心脏监护仪在Android设备中并不常见...

使用默认的传感器实现(SensorManagerSensorEventListener),这是禁用传感器的唯一可行方法-实际上,系统始终在处理传感器,并且仅在某些应用程序注册侦听器时才传递数据。因此,当您取消注册侦听器并且其他任何应用都没有注册类似的侦听器时,系统默认会禁用传感器,因为没有人向其请求数据...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?