Hololens v2 与 Android 智能手机之间的通信
Posted
技术标签:
【中文标题】Hololens v2 与 Android 智能手机之间的通信【英文标题】:Communication between Hololens v2 and Android smartphone 【发布时间】:2021-03-16 16:35:57 【问题描述】:下午好,我正在使用 Unity 开发一个包含 Hololensv2 和 android 智能手机的系统。
在我的系统中,智能手机应该向全息透镜发送一些数据,更准确地说,我正在尝试发送位置数据 (GPS),因为全息透镜中没有那个特定的传感器。 我已经开发了一个功能齐全的 UDP 解决方案,但现在我需要构建一个免费的网络解决方案,以便能够在户外使用一切。
我想到的第一个可能性是使用蓝牙,连接两个设备,然后从智能手机向全息透镜发送一条消息。
在 GitHub 上关注这个项目:https://github.com/FlipWebApps/HololensGPS 我设法在耳机上构建了一个理论上可以工作的蓝牙接收器,问题是它是一个信标接收器,并不是所有的智能手机都可以设置为信标。
此外,在 Unity 上,我不能直接使用蓝牙指令,但我需要通过插件。我已经尝试了 2 没有好的结果: https://assetstore.unity.com/packages/tools/integration/ibeacon-15260 https://assetstore.unity.com/packages/tools/network/bluetooth-networking-for-ios-tvos-and-android-124274
虽然第一个我没有找到任何地方,但我设法找到了第二个,但无法连接到它,hololens 蓝牙。
我真的觉得我错过了什么......
我什至不知道在尝试直接连接这两个设备或继续尝试将智能手机设置为信标和将全息透镜设置为接收器之间哪个选项更好......
任何想法/建议将不胜感激...谢谢大家。
【问题讨论】:
【参考方案1】:这实际上取决于跨设备所需的通信类型,但由于您的网络版本是 UDP,因此单向广播应该可以工作。如果 Android 设备正在广播一个值,那么 Hololens 可以只收听,无论您有 2 个还是 200 个都没有关系。诀窍是没有人“连接”到广播公司,他们只是在观察。
如果两个 Hololense 提供依赖服务,您只需将它们相互连接。在这种情况下,您可能会考虑将 Android 设置为具有更大范围且已编码的 WiFi 主机;)
如果不需要这种级别的范围或复杂性,Beacon 协议可以像 UDP 一样运行。由于信标是低功耗蓝牙 (BLE),您需要将 Hololens 设置为 Observer
模式,以便它监听而不是连接。关于如何在 Pi 上使用 BLE 的一个很好的解释是 here。
【讨论】:
这正是我试图让事情发挥作用的方式。我将hololens设置为观察者并尝试将智能手机设置为信标以在广播中发送消息,该解决方案的问题基本上是:1,由于需要开发,我正在智能手机上使用Unity插件Unity 上的应用程序,这意味着我对蓝牙并没有太多控制,因为它受到插件的限制,2 我无法通过 uuid 以智能方式过滤 hololens 上的信标......实际上你提到的wifi解决方案听起来很有趣...... 我已经尝试过类似的方法,我将 hololens 连接到智能手机的热点,但是当我尝试从智能手机 ping hololens 时,我没有得到任何响应......梦想是从智能手机连接到所连接的 hololens 的 ip。非常感谢您的回答,与某人谈论这个对我很有帮助!【参考方案2】:我的情况和你一样,我用 UDP 解决了。但是,您需要拥有两部手机,因为出于安全原因,Android 手机(我想 iOS 设备也是如此)不会使自己成为自己的 WiFi 热点的一部分。您有一部手机充当开关,并启用了 WiFi 热点。您的第二部手机连接到该热点,并通过 UDP 广播其 GPS 位置。您的 Hololens 也连接到同一个热点,然后可以接收 UDP 消息。全部使用 Unity 代码,无需原生蓝牙插件。
【讨论】:
以上是关于Hololens v2 与 Android 智能手机之间的通信的主要内容,如果未能解决你的问题,请参考以下文章