我找到了一个名为“SensorLogger”的 iPhone 应用程序,它可以记录大多数 iPhone 传感器的数据,然后通过电子邮件发送它们,但它也可以使用 UDP 数据包通过网络广播它,这是代码(Java )我用来接收该数据:
import java.io.*;
import java.net.*;
public class Main {
public static void main(String[] args) throws UnknownHostException, SocketException, IOException {
DatagramSocket socket = new DatagramSocket(5555, InetAddress.getByName("0.0.0.0"));
byte[] buf = new byte[64];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
while (true) {
socket.receive(packet);
String data = new String(packet.getData());
System.out.println(java.util.Arrays.toString(data.split(",")));
}
}
}
它运行良好,这是 iPhone 上运行的应用程序的输出:
[1343331999601, 4, 0.0013, -0.0049, -0.00237]
[1343331999636, 4, -0.0024, 0.0049, -0.00477]
[1343331999670, 4, -0.0073, 0.0073, -0.00377]
[1343331999704, 4, -0.0036, 0.0024, -0.00247]
第一个数字有点像时间戳,但我不知道这些数字是什么意思,它与 iPhone 上的日期/时间不匹配……第二个数字表示使用的传感器,1 是 GPS 位置, 2是指南针,3是加速度计,4是陀螺仪。最后的数字是来自传感器的值(由第二个数字定义)。现在,我想做一个小型 GUI 应用程序,它会以更用户友好的方式显示所有这些值……但是,这是我第一次用 Java 编程,我不知道该怎么做……可以任何人都请发送示例代码,以便我了解如何执行此操作并为所有值重复该操作。
谢谢,祝大家有个愉快的一天。