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

时间:2013-03-08 21:48:39

标签: c# android usb windows-applications device

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

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

我只有3个USB端口,并在其中一个USB端口上连接了三星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版操作系统。我尝试了“标题”和“描述”属性,但它们具有非常通用的信息,例如“三星”。如何在设备上获取用户友好的设备名称和已安装的Android OS版本。

2 个答案:

答案 0 :(得分:14)

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

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

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

答案 1 :(得分:0)

我认为我们需要更改设备设置

1>在您的Android上,转到设置 - >应用程序 - >发展

2 - ;检查USB调试

3>确保已安装设备驱动程序。

Android 4.2及更高版本带有安全性,不允许您在不更改设置的情况下触发ADB命令。

此致 雅利安