
这篇文章主要介绍了Android中查看USB连接的外接设备信息的代码实例,需要的朋友可以参考下
1,USB存储设备(如:U盘,移动硬盘):
//USB存储设备 插拔监听与 SD卡插拔监听一致。
代码如下:
private USBBroadCastReceiver
mBroadcastReceiver;
IntentFilter iFilter = new IntentFilter();
iFilteraddAction(IntentACTION_MEDIA_EJECT);
iFilteraddAction(IntentACTION_MEDIA_MOUNTED);
iFilteraddAction(IntentACTION_MEDIA_REMOVED);
iFilteraddAction(IntentACTION_MEDIA_UNMOUNTED);
iFilteraddDataScheme("file");
mBroadcastReceiver = new
USBBroadCastReceiver();
registerReceiver(mBroadcastReceiver,
iFilter);
private class USBBroadCastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent)
{
String action = intentgetAction();
if
(actionequals(IntentACTION_MEDIA_EJECT)) {
//USB设备移除,更新UI
} else if
(actionequals(IntentACTION_MEDIA_MOUNTED)) {
//USB设备挂载,更新UI
}
}
}
//获得挂载的USB设备的存储空间使用情况
public static String getUSBStorage(Context context){
// USB Storage
//storage/udisk为USB设备在Android设备上的挂载路径不同厂商的Android设备路径不同。
//这样写同样适合于SD卡挂载。
File path = new File("/storage/udisk");
StatFs stat = new StatFs(pathgetPath());
long blockSize =
statgetBlockSize();
long totalBlocks = statgetBlockCount();
long availableBlocks = statgetAvailableBlocks();
String usedSize =
FormatterformatFileSize(context, (totalBlocks-availableBlocks)
blockSize);
String availableSize = FormatterformatFileSize(context,
availableBlocks blockSize);
return usedSize + " / " +
availableSize;//空间:已使用/可用的
}
2,USB外接输入设备(如:键盘,鼠标,扫描q)
复制代码
代码如下:
try {
//获得外接USB输入设备的信息
Process p=RuntimegetRuntime()exec("cat
/proc/bus/input/devices");
BufferedReader in = new BufferedReader(new
InputStreamReader(pgetInputStream()));
String line = null;
while((line = inreadLine())!= null){
String deviceInfo =
linetrim();
//对获取的每行的设备信息进行过滤,获得自己想要的。
}
} catch (Exception e) {
// TODO: handle
exception
eprintStackTrace();
}
另:设备信息也可以通过 adb
shell 进入执行 cat /proc/bus/input/devices看到。
USB外接输入设备信息打印如下:
复制代码
代码如下:
I: Bus=0003 Vendor=11c0 Product=0030
Version=0110
N: Name="ACRUX USB Keyboard"
P:
Phys=usb-0000:00:040-13/input1
S:
Sysfs=/devices/pci0000:00/0000:00:040/usb1/1-1/1-13/1-13:11/input/input3
U:
Uniq=
H: Handlers=mouse1 event3
B: PROP=0
B: EV=17
B: KEY=70000 0 0
0 0 0 0 0 0
B: REL=103
B: MSC=10
I: Bus=0003 Vendor=11c0
Product=0030 Version=0110 这行信息会在Android设备与USB设备数据交互的是否使用到。
关于USB外接设备如何与Android设备数据数据交互的代码书写可以参考:
>
不少菜鸟在使用电脑时需要拷贝东西的时候。都会插入USB接口的鼠标,键盘,U盘之类的。但是无法识别的usb设备怎么解决下面就针对这个话题和大家分享如何解决这样的问题。
无法识别的usb设备怎么解决
1、右击“我的电脑”,选择“属性---硬件---设备管理器”。或者通过“控制面板---系统---硬件---设备管理器”。
2、点击“设备管理器”按钮进入。找到“通用串行总线程控制器”。
3、将“通用串行总线程控制器”下的项目选中后,选择上面的卸载按钮,或者直接右击鼠标选择“卸载”。一一卸载。
4、卸载后,点击其中的任何一个选项,选择上面的“扫描检测硬件改动”按钮,系统将自动安装卸载的驱动。
5、插上不能使用的硬件,系统将自动检测安装驱动。一般这时,硬件就可以使用了。
无法识别的usb设备怎么解决以上就是详细的解决方法。友情提醒:如果经过上面的 *** 作,硬件还是不能使用,考虑硬件的接口和硬件本身可能出问题,有的要重装系统。
首先,在使用赛元仿真器时无法获取USB设备类型的问题,可能是由于以下几个方面导致的:1 USB设备驱动程序没有正确安装。需要先确认所使用的USB设备驱动程序是否正确安装,并且驱动程序版本是否与 *** 作系统兼容。2 USB设备连接不良。需要检查USB设备的连接情况,确保设备正确插入电脑的USB接口,并且连接稳定。3 赛元仿真器本身存在问题。如果以上两种原因都无法解决,那么可能是赛元仿真器本身存在问题或者版本太旧,需要升级或者更换。针对这些问题,可以尝试以下几个解决方法:1 首先确认驱动程序已经正确安装。如果没有安装,则需要下载并安装相应的驱动程序。2 检查USB设备连接情况,确保设备正确连接,并尝试更换USB接口或者USB线。3 更新或者更换赛元仿真器,下载并安装最新版本的赛元仿真器来解决该问题。4 如果以上解决方法都无法解决问题,可以尝试联系赛元仿真器的技术支持或者USB设备的厂商,寻求更加专业的支持和解决方案。总之,无法获取USB设备类型的问题可能涉及到多个方面,需要逐一排查,并采用多种方法来解决。此外,在使用仿真器时需要了解相关的 *** 作方法和使用说明,以便更快地排除问题并提高效率。
using SystemManagement; // 在项目==》添加引用
class Program
{
static void Main(string[] args)
{
var usbDevices = GetUSBDevices();
foreach (var usbDevice in usbDevices)
{
ConsoleWriteLine("Device ID: {0}, PNP Device ID: {1}, Description: {2}\r\n",
usbDeviceDeviceID, usbDevicePnpDeviceID, usbDeviceDescription);
}
}
static List<USBDeviceInfo> GetUSBDevices()
{
List<USBDeviceInfo> devices = new List<USBDeviceInfo>();
ManagementObjectCollection collection;
using (var searcher = new ManagementObjectSearcher(@"Select From Win32_USBHub"))
collection = searcherGet();
foreach (var device in collection)
{
devicesAdd(new USBDeviceInfo(
(string)deviceGetPropertyValue("DeviceID"),
(string)deviceGetPropertyValue("PNPDeviceID"),
(string)deviceGetPropertyValue("Description")
));
}
collectionDispose();
return devices;
}
}
class USBDeviceInfo
{
public USBDeviceInfo(string deviceID, string pnpDeviceID, string description)
{
thisDeviceID = deviceID;
thisPnpDeviceID = pnpDeviceID;
thisDescription = description;
}
public string DeviceID { get; private set; }
public string PnpDeviceID { get; private set; }
public string Description { get; private set; }
}
"无法识别的USB设备"处理方法
1前置USB线接错。当主板上的USB线和机箱上的前置USB接口对应相接时把正负接反就会发生这类故障,这也是相当危险的,因为正负接反很可能会使得USB设备烧毁。
所以尽量采用机箱后置的USB接口,也少用延长线也可能是断口有问题,换个USB端口看下
2USB接口电压不足。当把移动硬盘接在前置USB口上时就有可能发生系统无法识别出设备的故障。原因是移动硬盘功率比较大要求电压相对比较严格,前置接口可能无法提供足够的电压,当然劣质的电源也可能会造成这个问题。解决方法是移动硬盘不要接在前置USB接口上,更换劣质低功率的电源或尽量使用外接电源的硬盘盒,假如有条件的话。
3主板和系统的兼容性问题。呵呵这类故障中最著名的就是NF2主板与USB的兼容性问题。假如你是在NF2的主板上碰到这个问题的话,则可以先安装最新的nForce2专用USB20驱动和补丁、最新的主板补丁和 *** 作系统补丁,还是不行的话尝试着刷新一下主板的BIOS一般都能解决。
4系统或BIOS问题。当你在BIOS或 *** 作系统中禁用了USB时就会发生USB设备无法在系统中识别。解决方法是开启与USB设备相关的选项。就是开机按F2或DEL键,进入BIOS,把enable
usb
device选择enable。
5拔插要小心,读写时千万不可拔出,不然有可能烧毁芯片。XP中任务栏中多出USB设备的图标,打开该图标就会在列表中显示U盘设备,选择将该设备停用,然后你再拔出设备,这样会比较安全。
其实判断软件硬件问题很简单,在别的机器或换个系统(98下要驱动哦)试试就可以了有些小的问题不妨先用专门软件格式化下还有提醒大家WINDOWS下格式化时要选择FAT,不要选FAT32。
希望你能满意!
呵呵
更多参考:>
细节信息。usb设备连接至电脑后,可以获取该设备的该设备的细节信息。电脑的配置是衡量一台电脑性能高低的标准。主要由CPU、显卡、主板、内存、硬盘、显示器、机箱、光驱、键盘、鼠标和散热系统决定。
以上就是关于如何查看USB方式连接Android设备的外接设备信息全部的内容,包括:如何查看USB方式连接Android设备的外接设备信息、怎么获得USB设备的Product ID,Vendor ID等信息、无法识别的usb设备怎么解决等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)