在 Android Wear OS 上保存和传输智能手表传感器数据(即 CSV)的最佳方式是什么?

2024-03-28

我为 Fossil Gen 6 智能手表编写了一个 Wear 应用程序,它从板载传感器中提取光电体积描记图 (PPG) 数据并不断更新屏幕上的值。这是我的onSensorChanged方法,它识别来自 PPG 传感器的事件并更新TextView相应地反对。我还尝试使用 a 将每个数据写入 CSV 文件FileWriter object.

@Override
    public void onSensorChanged(SensorEvent event) {

        // On event from PPG sensor, update text on screen and
        // write to CSV file.
        if (event.sensor.getType() == 65572) {
            sensorData = event.values[0];
            String dataString = Float.toString(sensorData);
            textView.setText(dataString);
            try {
                writer.write(dataString);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

文件编写器在顶部声明MainActivity:

    private FileWriter writer;

并且定义在onResume method:

protected void onResume() {
        super.onResume();
        try {
            writer = new FileWriter("data.csv",true);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

我不确定该怎么做实际上是have这个文件可供写入,是否应该以某种方式存储在手表上或配对的手机上,以及我最终如何在 PC 上检索 CSV 数据以在 MATLAB 中进行分析等。(有更好的方法吗?这个?)谢谢!


我只想首先说,有很多方法可以做到这一点,而什么被认为是“最佳”方法在很大程度上取决于您的用例的具体情况(有时还取决于个人偏好)。

最重要的是要记住,与典型的手机相比,手表的资源(电池、内存、CPU)非常有限。

无论您的具体解决方案是什么样子,都需要记住以下几点:

  1. 写入文件是一项昂贵的操作。对从传感器收到的每个数据点都执行此操作并不理想。考虑将数据保存到数据库使用房间 https://developer.android.com/training/data-storage/room反而。一个更简单的选择是将其保留在内存中,只要您同意在应用程序崩溃或设备意外重启时可能会丢失一些数据。这可以使用基本数组或某种映射(时间戳和值)来完成,具体取决于您需要的数据。您还可以混合使用这两种方法并批量保存数据。

  2. 在手表和手机之间发送数据也很昂贵。我强烈建议将东西存储在手表本身上,并仅在需要时将其传输到手机上。这可以是每天在手表充电时的某个时间手动触发,也可以是其他一些巧妙的策略,以尽量减少对手表电池寿命的影响。

  3. 您可以使用以下方式将数据发送到手机可穿戴数据层API https://developer.android.com/training/wearables/data/data-layer。您必须设置一个MessageClient or a ChannelClient取决于您需要传输多少数据。如果您坚持使用 Android 支持的数据结构(而不​​是创建自己的数据结构),那么发送它们应该相当简单。

  4. 如果您需要处理或格式化数据以便在 MATLAB 中轻松分析,请考虑在手机而不是手表上执行此操作。当然可以直接在手表上对合理大小的数据集进行更简单的操作。

您决定如何将文件传输到计算机上的具体方式超出了我在此尝试回答的范围。有很多有据可查的方法可以做到这一点。最简单的是手动通过adb传输 https://developer.android.com/studio/command-line/adb#copyfiles。这也可以直接从手表完成,因此您甚至不必将数据发送到手机。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android Wear OS 上保存和传输智能手表传感器数据(即 CSV)的最佳方式是什么? 的相关文章

随机推荐