如何使用 Winform C# 应用程序通过 USB 数据线将数据传输到 Hololens 设备?

How to use Winform C# app to transfer data to Hololens device with USB cable?

我正在使用 Winform C# 为 Hololens 设备制作应用程序。

我希望能检查一下Hololens设备是否连接到PC,这样我就可以在Hololens和PC之间传输数据了。

我找到一个解决方案是检查我是否可以访问 Hololens 内部存储,如果可以检查,则 Hololens 已连接到 PC。

但我发现我无法获取Hololens内部存储,即使我可以在资源管理器中看到内部存储,但我无法获取驱动程序(如 C:\ 或 D:\ ),Hololens内部存储没有设备编号。

我该怎么办?有没有更好的方法来检查Hololens是否已连接并在除网络之外的PC之间传输数据?

既然有ADB这样的smilar项目,有必要开发类似ADB的东西吗?如果可以,我应该如何开始?

----------------------------编辑---------------- ----

我终于找到了可行的解决方案:

首先,在 PC 应用程序中,我使用了一个名为 libusbDotNet 的库,它允许您完全控制 Hololens 等 USB 设备,以向 Hololens 设备发送命令

其次,在Hololens平台,编写一个UWP应用程序,可以通过usb数据线从PC接收数据,并将响应数据发送回PC

来自讨论。实际问题是如何从远程 PC 访问 HoloLens 文件系统。

这可以通过 Windows Device Portal REST API 解决。

但我建议使用 WindowsDevicePortalWrapper。您应该通过 USB 或 WiFi 连接到您的设备,并提供访问权限。

读取一个已知文件夹内容的简单代码。

static void Main(string[] args1)
{

    string DeviceAddress = "http://127.0.0.1:10080/";

    DevicePortal Portal = new DevicePortal(new DefaultDevicePortalConnection(DeviceAddress, "user", "pass"));

    Portal.ConnectAsync().Wait(); 

    var folders = Portal.GetKnownFoldersAsync().Result.Folders;
    var rootDirOfFirstFolder = Portal.GetFolderContentsAsync(folders[0], null).Result.Contents;

    Console.WriteLine($"First known folder is {folders[0]}. It contains:");
    foreach(var file in rootDirOfFirstFolder)
    {
        Console.WriteLine($"\t{file.Name}");
    }


    Console.WriteLine("Press ANY key to continue.....");
    Console.ReadKey();

}

类似的工作人员针对设备上的 reading/writing 个文件。