c# - 如何获取通过 USB 与 C#.net (VS2010/4.0+) 连接的 Android 设备的操作系统版本和设备名称?

标签 c# android usb windows-applications device

我想在 C#.net 中构建一个 Windows 应用程序,它应该在您连接 Android 设备时识别已安装的 Adroid 操作系统版本(例如 4.0)和用户友好的设备名称(例如 Samsung Galaxy S3、Samsung Galaxy Tab 8.9 等)通过 USB 连接到您的计算机。

我尝试使用 System.Management 类来识别我机器上连接的 USB 设备,但是,我遇到的问题是:

我只有 3 个 USB 端口,并在其中一个 USB 端口上连接了 Samsung Galaxy Tab 8.9,并尝试使用 USBhub WMI class 获取 USB 设备列表,我得到了大约 6-7 个结果在包括三星设备的列表中。所以,这里的问题是:

  1. 为什么我在查询 USBHub 时得到 6-7 个结果?我在这里做错了什么吗?

  2. 如何过滤我的记录以仅列出连接了外部设备的 USB 端口而不是 6-7 个结果?

  3. 我找不到我期望的正确/用户友好的设备名称(例如 Samsung Galaxy Tab 8.9),也无法获得 Android 版本的操作系统。我尝试了“Caption”和“Description”属性,但它们具有非常通用的信息,例如“Samsung”。如何获取用户友好的设备名称和设备上安装的 Android 操作系统版本。

最佳答案

您可以使用 Android Debug Bridge从 Android SDK 查询已连接设备的属性。您可以简单地从 .NET 中启动 adb.exe 进程并使用结果。

例如 adb.exe shell getprop ro.product.model 将为您提供模型名称,而 adb.exe shell getprop ro.build.version.release 将为您提供模型名称给你安卓版本号。要获取给定设备的所有可用属性的完整列表,您也可以只运行 adb.exe shell getprop

请注意,属性名称并不是真正标准化的,制造商不需要输入有值(value)的名称。产品型号通常包含设备的代号或产品标识符,这些名称在消费者中不常用于识别产品。

关于c# - 如何获取通过 USB 与 C#.net (VS2010/4.0+) 连接的 Android 设备的操作系统版本和设备名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15303915/

相关文章:

c# - DES-ECB加解密

c# - 点网核心 3.1 : How to use AddJsonFile with absolute path to file?

android - usb 配件,通过 Service 的 intent-filter 捕获 USB_ACCESSORY_ATTACHED

android - USB_STATE 广播的附加功能

c# - BCrypt 根据数据库中的密码验证密码

C# 阻止条目所以你不会得到 "Index was outside the bounds of the array"

java - 保存在内部存储中的位图不会显示在图库中

android - 当键盘出现在 ConstraintLayout 中时如何向上移动 View

Android:从顶部开始循环进度条(270°)

c++ - 将 0 和 1 发送到 USB 数据引脚?