【问题标题】:UWP usb detectionUWP USB 检测
【发布时间】:2016-07-13 17:11:39
【问题描述】:

我想在我的应用中检测 USB 驱动器(在启动时),但我找不到一个简单的方法来做到这一点!

在 WinForms 中我使用了DriveInfo,但它在 UWP 中不存在。

我发现了这个:How to get notifications if devices are added, removed, or changed (XAML),但这一点都不简单!它会找到除了我的 USB 驱动器之外的所有东西! (或者它没有用好名字显示它)。

你能帮帮我吗?谢谢

【问题讨论】:

  • 谢谢 itme86

标签: c# usb uwp detection


【解决方案1】:

DeviceEnumerationAndPairing上查看此示例

如果您希望在应用打开时完成此操作,请参阅场景 2

如果您希望在您的应用未打开(后台)时完成此操作,请参阅场景 3。

在示例中,当我连接 USB 时,我能够看到设备接口 ID 和名称。这应该可以帮助您入门。

编辑 2:因此,根据您的要求,请参阅KnownFolders.Removable Devices 的文档

这将为您提供新添加的可移动设备中的所有文件和文件夹(在带有 OTG 或 SD 卡的手机上)

【讨论】:

  • 感谢 AVK Naidu。我的电脑有问题,所以我会尽快尝试您的建议并通知您
  • 我尝试了示例,场景 2 似乎对我来说是最好的。但是我仍然有一个问题,我怎样才能让驱动器的字母在 USB 设备内部查看?还是以其他方式完成?感谢您的帮助
  • 好的。所以据我了解,首先你想检测 USB 更改,如果你发现了一些东西,你想查询文件?
  • 是的。我需要找到一个 USB 驱动器并读取其中的文件。但是 USB 驱动器的字母可能会改变。所以我需要使用我的 USB 驱动器的 ID 或其名称(对于名称,我知道这不是一个好的工作方式)动态地找到我的文件的路径。
【解决方案2】:

它会为你提供所有的portable设备列表

   var myDevices = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync(Windows.Devices.Enumeration.DeviceClass.PortableStorageDevice);

 StorageFolder externalDevices = Windows.Storage.KnownFolders.RemovableDevices;
StorageFolder sdCard = (await externalDevices.GetFoldersAsync()).FirstOrDefault();

 // An SD card is present and the sdCard variable now contains a reference to it.
    if (sdCard != null)
      {
        // do whatever you want!
       }

【讨论】:

    猜你喜欢
    • 2013-11-03
    • 2023-03-10
    • 2016-09-03
    • 2012-05-10
    • 2018-03-31
    • 2016-11-03
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    相关资源
    最近更新 更多