Android - 检测usb

方式一

作用:只判断是否存在usb路径

  1. 使用 adb查看存在 usb时的路径
  2. 通过 File判断usb是否存在
	/**
     *
     * @param path 文件夹路径
     */
    public boolean isExist(String path) {
        File file = new File(path);
        //判断文件夹是否存在,如果不存在则创建文件夹
        if (!file.exists()) {
            return false;
        }
        return true;
    }

在这里插入图片描述

方式二

作用:可查看 usb设备节点及信息(此方法不建议用来检测usb路径)

  • 如果不重启设备的前提下,拔插usb再检测时,它的 key会累积起来。检测完之后清空后还是会叠加。
	/*
    * 检测Usb
    * */
    HashMap<String, UsbDevice> deviceHashMap;
    private void detectUsbDeviceWithUsbManager() {
        int i = 0;
        Log.d("----------------", "----------------------------------");
        deviceHashMap = ((UsbManager) getSystemService(USB_SERVICE)).getDeviceList();

        for (Map.Entry entry : deviceHashMap.entrySet()) {
            Log.d("Usb", "----===UsbUsbUsb----detectUsbDeviceWithUsbManager: " + entry.getKey() + ", " + entry.getValue());
            i++;
        }
       
    }

在这里插入图片描述

方式三

作用:监听 usb拔插

public class USBBroadcastReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
            if (intent.getAction().equals("android.hardware.usb.action.USB_STATE")) {
                if (intent.getExtras().getBoolean("connected")) {
                    // usb 插入
                    Toast.makeText(context, "插入", Toast.LENGTH_LONG).show();
                } else {
                    //   usb 拔出
                    Toast.makeText(context, "拔出", Toast.LENGTH_LONG).show();
                }
            }
        }
    }

在这里插入图片描述

  • 方式四
    作用:列出存在usb接口的信息
private void detectUsbDeviceWithInputManager() {
        InputManager im = (InputManager) getSystemService(INPUT_SERVICE);
        int[] devices = im.getInputDeviceIds();
        for (int id : devices) {
            InputDevice device = im.getInputDevice(id);
            Log.d("----------------", "-------===id: " + id);
            Log.d("----------------", "-------===name: " + device.getName());
        }
    }

你可能感兴趣的:(Android,Studio,android)