2015-05-12 4 views
2

Я пытаюсь обнаружить USB-устройства, которые уже подключены к Android. Я понимаю, что есть действия по обнаружению, когда USB подключен или отсоединен. Но я не понимаю, как проверить устройства после подключения USB-устройства к Android. Кроме того, я обнаружил, что каждое устройство USB имеет код класса устройства, но как я могу определить, какое устройство подключено? Например, мне нужно обнаружить мышь и клавиатуру usb; как их отличить?Android: как обнаружить уже подключенное устройство USB?

ответ

3

Попробуйте это:

  1. Первый регистр Broadcast для подключения USB. манифеста разрешение:

  2. Получить список 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(); 
    
            String DeviceID = device.getDeviceId() 
            String Vendor = device.getVendorId(); 
            String Product= device.getProductId() ; 
            String Class = device.getDeviceClass() ; 
            String Subclass = device.getDeviceSubclass(); 
    
    } 
    
+0

th x, но как узнать, какое устройство подключено? – Junsfavorite

+0

Класс и подкласс устройства должны сообщать вам информацию об устройстве, если только он не является конкретным поставщиком - в этом случае вы должны иметь возможность просматривать VID/PID, но вам нужно знать, какое именно устройство устройства вы ищете для. – Preston

+1

Что такое 'mPermissionIntent' ?? как я могу это создать? – Benny

0

Просто, чтобы ответить на вопрос Бенни вот что mPermissionIntent может выглядеть следующим образом:

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

PendingIntent mPermissionIntent = PendingIntent.GetBroadcast(context, 0, new 
Intent(actionString), 0); 
mUsbManager.RequestPermission(device, permissionIntent); 
+0

'string actionString = context.PackageName +" .action.USB_PERMISSION ";' неверно. Это должно быть 'string actionString = context.PackageName +" .USB_PERMISSION ";' –

Смежные вопросы