0

问题摘要
我正在尝试在 HoloLens 和 Android 设备之间建立连接,该连接在 MRTK 的 beta 版本中偶尔会起作用。但是,自从迁移到 MRTK RC1(也刷新)后,我遇到了有关 QR 扫描的问题。当按下连接时,两个设备似乎找到了对方,但是当 HoloLens1 的佩戴者直接查看 QR 码时,什么也没有发生。(白点和“定位标记...”文本正在显示)

背景摘要
1. 设置:

  • 实施工作 MRTK RC1 刷新
  • 单独克隆 Feature-SpectatorView,仅将“MixedRealityToolkit.Extensions”文件夹复制到 MRTK 项目中。
  • “观众视图 - HoloLens”预制件添加到场景中。
  • 首先在 PlatformSwitcher 中按下“HoloLens”,为 HoloLens1 构建,然后切换到“Android”并将项目导出到 Android Studio。
  • 从 Android Studio 构建 .apk

(opencv 二进制文件是从 beta 版开始下载和实现的,我没有从上次工作时更改它们。)

2. 过程:
在 HoloLens 上,我按下“连接”按钮,其中出现一个白色文本,上面写着“定位标记...”

Android 手机按下连接并转到“等待用户”,然后一旦连接 HoloLens,它就会立即切换到应该可以从所述 HoloLens 读取的 QR 码。

直接查看 QR 码并没有发生任何新情况,无法进一步建立连接。

我检查了播放器设置/功能中是否未勾选某些内容,但我似乎无法找到罪魁祸首。我在这个过程中忘记了什么吗?

4

1 回答 1

0

有几件事可能会导致此问题。

如果 Android 设备显示标记,则表示两台设备已建立网络连接并正在相互通信。通常,当我运行旁观者视图时,我会启用以下功能:包中的“Internet(客户端和服务器)、Internet(客户端)、麦克风、图片库、专用网络(客户端和服务器)、空间感知、视频库、网络摄像头” .appxmanifest 在视觉工作室。在旁观者视图的统一平台切换器上按“HoloLens”通常应该实现启用这些功能,但有时 package.appxmanifest 无法在 Visual Studio 项目中正确更新,随后在 Unity 中构建。您可以通过删除您的 Visual Studio 目录并统一重建 Visual Studio 项目来解决此问题。

如果在 package.appxmanifest 中检查了这些功能,则可能是您在首次运行应用程序时拒绝了功能请求。如果您在 HoloLens 上打开设置 -> 隐私 -> 摄像头,您可以检查您部署的旁观者视图应用程序是否已授予摄像头访问权限。如果它被禁用,您应该能够在此处启用相机功能。

MixedRealityToolkit 和 MixedRealityToolkit-Unity 旁观者视图逻辑都发生了变化,因此在不同时间点克隆这些项目可能会导致函数不再解析(我们希望将来将此代码合并到相同的 repo/commit 历史记录中以防止这种情况继续发生)。通常,如果 dll 功能无法正确解析,Unity 日志中会出现错误,指出未找到 SpectatorViewPlugin.dll 的功能。如果事情以前有效,听起来这不是您遇到的问题。但如果确实如此,则可能是您需要重建 SpectatorViewPlugin.dll 以匹配您正在使用的功能/spectatorView 代码。

如果您最近将 SpectatorViewPlugin.dll 及其依赖项复制到新的统一项目中,则可能是它们没有被 windows uwp 统一播放器注册为可用。确保这些二进制文件位于资产文件夹内的 Plugins\WSA\x86 文件夹中。还要检查统一检查器中的 *.dll.meta 定义,以确保 dll 被声明为可用于统一 wsa 播放器/x86 构建。

于 2019-05-21T23:05:05.537 回答