Hololens v2和Android智能手机之间的通信

4
下午好,我正在使用Unity开发一款系统,其中包括一对Hololensv2和一部安卓智能手机。
在我的系统中,智能手机应该向Hololens发送一些数据,更确切地说,我正在尝试发送位置数据(GPS),因为Hololens上没有那个特定的传感器。我已经开发了一个完整的UDP解决方案,但现在我需要构建一个无网络的解决方案,以便在户外使用。
我脑海中想到的第一种可能性是使用蓝牙,连接两个设备并从智能手机发送消息到Hololens。
在GitHub上跟随这个项目:https://github.com/FlipWebApps/HololensGPS 我成功地在耳机上建立了一个理论上工作的蓝牙接收器,问题是它是一个信标接收器,而不是所有的智能手机都可以设置为信标。
此外,在Unity中,我无法直接使用蓝牙指令,但需要通过插件进行传递。我已经尝试过两种插件,但效果不佳: 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的蓝牙,但无法连接。
我真的觉得我缺少了什么...
我甚至不知道哪个选项更好,是尝试直接连接这两个设备还是继续尝试将智能手机设置为信标,将Hololens设置为接收器...
任何想法/建议都将不胜感激...谢谢大家。
2个回答

1
这取决于设备间所需的通信类型,但由于你的网络版本是UDP,单向广播应该可行。如果Android设备正在广播一个值,那么Hololens只需要监听即可,无论你有2个还是200个设备都不会影响。关键在于没有一个设备与广播者“连接”,它们只是观察者。
只有当两个Hololens提供依赖服务时才需要将它们连接在一起。在这种情况下,您可以考虑将Android设置为WiFi主机,这样具有更大的范围并且已经编码了 ;)
如果没有那种范围或复杂性的需求,则Beacon协议可以像UDP一样运作。由于Beacons是蓝牙低功耗(BLE),因此您需要将Hololens设置为“Observer”模式,以便它将听取而不是连接。关于如何在Pi上使用BLE进行非常好的解释,请参见here

这正是我试图让事情工作的方式。我将Hololens设置为观察者,试图将智能手机设置为信标以进行广播消息发送,这种解决方案的问题主要有:1、由于需要在Unity上开发应用程序,我正在使用智能手机上的Unity插件,这意味着我对蓝牙没有真正的控制权,因为它受到插件的限制;2、我无法以智能方式通过uuid过滤Hololens上的信标...实际上,您提到的WiFi解决方案听起来很有趣... - Ivan Oe Valentini
我已经尝试过类似的事情了,我将Hololens连接到智能手机的热点,但是当我尝试从智能手机ping Hololens时,我没有得到任何响应...梦想是从智能手机向连接的Hololens IP发送UDP消息。 非常感谢您的回答,与某人讨论这个问题对我很有帮助! - Ivan Oe Valentini

0

我曾经和你处于同样的情况,我使用UDP解决了这个问题。但是你需要两部手机,因为出于安全考虑,Android手机(我想iOS设备也是如此)不会将自己作为其自身WiFi热点的一部分。你需要一部手机充当交换机,启用其WiFi热点。你的第二部手机连接到该热点,并通过UDP广播其GPS位置。你的Hololens也连接到相同的热点,然后可以接收UDP消息。所有这些都使用Unity代码完成,无需使用本地蓝牙插件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接