我正在开发 android sdk 和 kinect sdk 上的双重应用程序。我希望能够让 kinect 将数据发送到智能手机应用程序。然后,智能手机应用程序将根据 kinect 数据向用户发出通知。智能手机应该能够(希望)打开/关闭 kinect 以及一些其他基本命令。如何让 kinect 和智能手机应用程序通信?
2 回答
很酷的概念,我是 Kinect 的忠实粉丝(在 Windows 上使用时;我认为这是 Xbox 的噱头)。
对于初学者,您不能直接从智能手机与 Kinect 交互。Kinect 需要 USB 连接、外部电源和具有 2.6 GHz 双核处理器的 Windows 7 机器。所以现在它变成了连接在 Windows 7 机器上运行的服务器应用程序和 Android 手机上的客户端应用程序的问题。有几种方法可以做到这一点(USB、WiFi、TCP),但它们都在某处受苦。USB 会将您连接到计算机,从而使智能手机应用程序变得多余(只需使用计算机,因为您已经连接到它)。如果您打算发送大量数据,WiFi 可能是最佳选择,但只能在您家中使用。TCP(或 UDP)可能适用于某些应用程序,但如果您开始尝试流式传输视频,您的手机会讨厌您。
我假设您不会使用数据量大的应用程序(视频流到手机)。如果您只是想从 Kinect 向 Android 发送通知(例如,将 Kinect 用作运动检测器并在有人进入房间时向 Android 发送消息),类似于短信更新,您当然可以拉开 TCP/IP 解决方案,可能很容易。您将使用 Kinect 在 Windows 7 计算机上设置一个简单的 TCP 服务器,然后使用TCP 请求连接到它(查看客户端代码)。完成设置后,就可以轻松地在 Kinect 和智能手机应用程序之间发送消息。对于初学者,只需尝试发送一些快速消息即可。服务器说“你好”,Android 回复“我讨厌你的窗口”等,并确保消息正在到达目的地(TCP 几乎可以保证它们会)。在你运行之后,只需围绕它构建你的应用程序。
如果您愿意避免使用官方的 Microsoft SDK,点云库(建立在 OpenNI 之上)有一个框架和教程用于流式传输。