如何在中获取USB设备供应商ID和产品ID.NET MAUI在Mac上



我正在尝试使用MAUI获取有关连接到我的MacBook Pro Mid 2012的USB设备的信息。NET。特别是设备的VID和PID。

关于我的项目的更多细节:

  • 代码编辑器-Visual Studio社区2022
  • 程序设计语言-C#
  • 框架-MAUI。NET(跨平台(
  • 物理机器-MacBook Pro 2012年年中
  • 操作系统-MacOS蒙特利

我如何才能完成我想要做的事情?

谢谢

我找到了一个解决方法。

以下是步骤:

  1. 编写一个shell脚本,根据所需设备的PID和VID获取所有USB设备和过滤器。您还可以根据名称进行脚本筛选。您可以从以下链接获取脚本-https://gist.github.com/song940/7149576#file-lsusb sh

您可能需要对其进行编辑,以便根据您的特定需求进行筛选您需要修改脚本(lsusb.sh(以返回BSD名称如果您想在前面的步骤中获得设备安装点。

  1. 编辑脚本并确认其在终端中工作后。将其放入。NET MAUI应用程序;"资源/原料";文件夹

  2. 确保shell文件的构建属性是-构建操作:Maui资产,复制到目录:始终复制

  3. 使用以下代码在应用程序中运行脚本-

public string GetUsbDeviceInfoString()
{
string AppDirectory = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
string scriptPath = AppDirectory.Replace("MonoBundle", "Resources/lsusb.sh");
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "/bin/bash";
p.StartInfo.Arguments = " -c "" + "sh '"+ scriptPath + "' "";
p.Start();
// To avoid deadlocks, always read the output stream first and then wait.
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
return output;
}
  1. 为了获得USB安装点(USB设备路径(,您需要创建另一个执行命令的脚本文件"diskutil信息$BsdName|grep"装载点:"|awk-F":"'{print$2}";返回路径(装载点:(。通过重复步骤4执行第二个脚本,但更改名称以指向该脚本文件(Resources/getmountpoint.sh(

注意!!!我发现了一个错误,如果你构建项目并将其作为包(.pkg(发布,脚本文件就不起作用。只有当你构建并将应用程序作为.app文件发布时,脚本才起作用

最新更新