当前位置: 首页 > 知识库问答 >
问题:

Android:如何检测已连接的usb设备?

夔宏深
2023-03-14

我正在尝试检测已经连接到android的usb设备。我知道有动作可以检测USB何时连接或断开。但是我真的不知道如何在将usb设备连接到android后检查设备。另外,我发现每个USB设备都有它的设备类别代码,但是我怎么知道连接的是哪种设备呢?例如,我需要检测usb鼠标和键盘;我如何区分它们?

共有2个答案

狄富
2023-03-14

为了回答本尼的问题,这里是mPermissionIntent的样子:

string actionString = context.PackageName + ".action.USB_PERMISSION";

PendingIntent mPermissionIntent = PendingIntent.GetBroadcast(context, 0, new 
Intent(actionString), 0);
mUsbManager.RequestPermission(device, permissionIntent);
柯捷
2023-03-14

试试这个:

  1. 首先为 USB 连接注册广播。清单权限:

:

<intent-filter> <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" /> </intent-filter>

使用此方法获取包含详细信息的 USB 设备列表

public void getDetail() {
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);

HashMap<String, UsbDevice> deviceList = manager.getDeviceList();
Iterator<UsbDevice> deviceIterator = deviceList.values().iterator();
while (deviceIterator.hasNext()) {
    UsbDevice device = deviceIterator.next();

    manager.requestPermission(device, mPermissionIntent);
    String Model = device.getDeviceName();

    int DeviceID = device.getDeviceId();
    int Vendor = device.getVendorId();
    int Product = device.getProductId();
    int Class = device.getDeviceClass();
    int Subclass = device.getDeviceSubclass();

}}
 类似资料:
  • 我目前正在开发一款android wear应用程序,它有两种模式:连接(与手机配对)和断开连接。我看了这个帖子(如何检测android设备是否与android wear watch配对)。我添加了侦听器来检测何时找到节点。 存在以下情况:-如果启动移动应用程序,wear应用程序将检测到节点并进入连接模式。-如果移动应用程序被杀死,它会在被销毁之前向手表发送一条消息,手表会进入断开连接模式如果蓝牙连

  • 有没有办法打开tcpip端口5555进行调试,而不需要通过USB连接到电脑?

  • 需要说明的是,这款设备没有被锁定或任何东西,它非常适合我的朋友,他也有同样的android studio版本。问题不在于检测usb设备(通过电脑),我可以完美地访问设备的内容,因此它可以正确地连接到我的电脑,但不能连接到android studio。当我试图运行一个应用程序时,usb设备没有出现在选项中。有人能帮我解决这个问题吗,我的android工作室正在更新。 更新:我使用的设备是:三星J2和

  • 问题内容: 我正在开发一个需要扫描WiFi网络并显示所有已连接设备列表的应用程序。 允许用户点击设备,该应用应显示该特定设备的所有硬件信息。这里所说的硬件是指-RAM,存储介质,存储容量,设备名称,设备IP地址等。 现在,该设备可以是xbox,带Linux / Windows的笔记本电脑,iPhone等手机或任何基于Andorid的智能手机甚至打印机。 如何扫描WiFi网络并查询/检测连接到它的所

  • 问题内容: 有没有办法检测是否已连接到控制台终端?例如,我希望能够检测foo.py是否通过以下方式运行: 要么 我问这个问题的原因是,我想确保进度条显示仅在前一种情况下发生(真实控制台)。 问题答案: if sys.stdout.isatty(): # You’re running in a real terminal else: # You’re being piped or redirecte

  •  USB连接 使用USB连接线,可连接下列的外接装置。 已安装Windows®或Mac OS等,可支持USB大容量储存装置之OS的个人计算机。 PS3™或HDD录放机等,能经由USB与PSP™联机的机器。 1. 用USB连接线连接PSP™主机与外接装置。 2. 进入(设定),并选择(USB连接)。 提示 启动PSP™主机电源时亦可连接。请同时参阅要连接之外接装置随附的使用说明书。 使用PSP-20