【问题标题】:Android - streaming sensor data continuously?Android - 连续流式传输传感器数据?
【发布时间】:2013-07-21 22:42:26
【问题描述】:

我有以下代码给我一些传感器数据:

private void computeOrientation() {
        if (SensorManager.getRotationMatrix(m_rotationMatrix, null, m_lastAccels, m_lastMagFields)) {
            SensorManager.getOrientation(m_rotationMatrix, m_orientation);

            /* 1 radian = 57.2957795 degrees */
            /*
             * [0] : yaw, rotation around z axis [1] : pitch, rotation around x
             * axis [2] : roll, rotation around y axis
             */
            float yaw = m_orientation[0] * 57.2957795f;
            float pitch = m_orientation[1] * 57.2957795f;
            float roll = m_orientation[2] * 57.2957795f;

            /* append returns an average of the last 10 values */
            m_lastYaw = m_filters[0].append(yaw);
            m_lastPitch = m_filters[1].append(pitch);
            m_lastRoll = m_filters[2].append(roll);

            yawText.setText("azi z: " + m_lastYaw);
            pitchText.setText("pitch x: " + m_lastPitch);
            rollText.setText("roll y: " + m_lastRoll);

                    //Now I want to send those 3 values over the network
                    //whenever they're calculated
}

我估计每隔几毫秒就会调用一次这个函数,来自onSensorChanged(SensorEvent event)

我想通过 Internet 网络不断地将这些数据发送/流式传输到远程设备,该设备将使用数据流实时计算事物。

我应该怎么做?通过插座?一个异步任务?非常感谢您的入门示例源代码 =)

【问题讨论】:

  • 我也有同样的问题,我正在通过 WIFI 从 3 个传感器读取数据,但是数据流有时会停止几秒钟,而当我们运行良好(无任何延迟地获得连续数据流)时在 android 上启用 AIRPLANE 模式。如何解决?

标签: java android networking


【解决方案1】:

这是一个服务在后台计算数据的工作。因为不需要 UI,您可以使用 Thread 而不是 AsyncTask 来获取传感器数据。

通常需要更多细节,尤其是设置手机和远程设备之间的连接。如果您使用 LAN,套接字与电话上的 ByteArrayriter 和设备上的 ByteArrayReader 组合应该可以完成这项工作。

【讨论】:

  • 所以让服务在后台计算数据,好的,然后从服务内部通过套接字发送?这行得通吗?
  • 1) 在 UI 线程上运行网络请求,2) 传输速度;虽然我会尝试一下,因为这是唯一的方法。在设置方面,我认为主线程可以进行计算,而服务可以只是套接字通信——这有意义吗?还是在服务中做所有事情?
  • 您可以在您的服务中做所有事情:获取传感器数据和网络连接。只要确保使用线程,就像我之前所说的那样。如果您对 1-2ms 以下没有任何要求,请不要担心数据传输的性能。
  • 听起来不错,虽然我不明白 re:在服务中使用线程?我认为服务基本上充当后台线程,因此我可以通过它进行传感器计算和套接字通信。
  • 文档对Services很清楚
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-20
  • 2011-07-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多