我想在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个结果,包括三星设备。所以,这里的问题是:
为什么查询USBHub时会得到6-7的结果?我在这里做错了吗?
如何过滤我的记录以仅列出连接有外部设备的USB端口而不是6-7结果?
我找不到我期待的正确/用户友好设备名称(例如Samsung Galaxy Tab 8.9),无法获得Android版操作系统。我尝试了“标题”和“描述”属性,但它们具有非常通用的信息,例如“三星”。如何在设备上获取用户友好的设备名称和已安装的Android OS版本。
答案 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命令。
此致 雅利安