Android 获取 USB设备列表

Posted wanglongjiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 获取 USB设备列表相关的知识,希望对你有一定的参考价值。

获取usb列表
UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE); int size = usbManager.getDeviceList().size(); HashMap<String, UsbDevice> deviceList = usbManager.getDeviceList(); for (Map.Entry<String, UsbDevice> stringUsbDeviceEntry : deviceList.entrySet()) Toast.makeText(this, stringUsbDeviceEntry.getValue().getProductName()+" "+stringUsbDeviceEntry.getValue().getManufacturerName(), Toast.LENGTH_SHORT).show(); Log.e("www",stringUsbDeviceEntry.getKey()+" "+stringUsbDeviceEntry.getValue().getProductName()+" "+stringUsbDeviceEntry.getValue().getManufacturerName());

重启

PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
            powerManager.reboot("");

 关机

android11代码关机
之前有些版本可以使用如下方式从代码里面调用关机:

Intent i = new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN");
i.putExtra("android.intent.extra.KEY_CONFIRM", false); //是否需要确认
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);

最近搞android11的项目此方法已经不能使用,
于是就使用如下反射的方式了:

//关机

PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
Class clazz = pm.getClass();
try
Method shutdown = clazz.getMethod("shutdown",boolean.class,String.class,boolean.class);
shutdown.invoke(pm,false,"shutdown",false);
catch (Exception ex)
ex.printStackTrace();

另外还有一种方式是使用命令 reboot -p ,个人不建议大家使用。

不管上面哪一个都是需要在AndroidManifest.xml里面添加 :android:sharedUserId=“android.uid.system”

 
 
 
 

C# - 获取所有 USB 打印机的列表

【中文标题】C# - 获取所有 USB 打印机的列表【英文标题】:C# - Get List of all USB Printers 【发布时间】:2016-10-29 20:50:08 【问题描述】:

如何使用 C# 获取所有已连接 USB 打印机的列表?我需要在列表框中显示所有 USB 打印机的名称。

编辑:System.Drawing.Printing.PrinterSettings.InstalledPrinters 不能解决我的问题,我只需要 USB 打印机,不需要安装打印机。

Edit2:我的真正目标是从打印机名称中获取设备实例 ID,此处已回答:Figuring which printer name corresponds to which device ID。因此,我需要从 USB 打印机列表中获取打印机名称才能使用 GetUSBPath(string PrinterName)。

【问题讨论】:

How to get the list of all printers in computer的可能重复 试试ManagementObjectSearcher 【参考方案1】:

我在旧项目中使用了这段代码,希望对你有帮助 =)

首先你必须添加这个库:using System.Drawing.Printing;

foreach (string printers in PrinterSettings.InstalledPrinters)
        
            comboBoxName.Items.Add(printers);
        

【讨论】:

抱歉,这给了我:Microsoft XPS Document Writer(错误)、HP Deskjet 3630 series(OK - usb)、HP Deskjet 1010 series(OK - usb)、Fax(错误)。我只需要 USB 打印机。 您可以在您的控制下删除这些。该代码将为您提供所有打印机。这些是默认的:)

以上是关于Android 获取 USB设备列表的主要内容,如果未能解决你的问题,请参考以下文章

C#:基于WMI查询USB设备信息 及 Android设备厂商VID列表

使用 Android 与 USB HID 设备通信

Android设备未显示在adb列表中[关闭]

在 NodeJS 中通过 USB 连接 Android/iPhone 设备

Android中监控USB的插拔

android设备使用usb串口传输数据