2016-07-11 12 views
0

Ich habe eine App, die zu einem USB-Zubehör verbindet. Einfach, aber das Zubehör bleibt verbunden, auch nachdem das USB-Kabel ausgesteckt wurde.Usb Zubehör bleibt angeschlossen nach USB-Stecker unplugged

Dies ist mein Code:

public boolean checkOpenAccessory(){ 
     UsbManager usbManager = (UsbManager)  getSystemService(Context.USB_SERVICE); 
    UsbAccessory[] accessories = usbManager.getAccessoryList(); 
    UsbAccessory accessory; 
    if(accessories == null){ 
     accessory = null; 
     return false; 
    } else { 
     accessory = accessories[0]; 
     if(usbManager.hasPermission(accessory)) { 
      return (usbManager.openAccessory(accessory) != null); 
     } else { 
      return false; 
     } 
    } 
} 

Das gibt mir, dass ich auf einem USB-Zubehör verbunden bin, aber ich bin es nicht. Ich habe eine Entwickler-App, die alles im Telefon überwacht und das gleiche sagt:

UsbAccessory[] accessories = usbManager.getAccessoryList(); 

Zubehör ist angeschlossen. Ich habe auch versucht, eine Übertragung auszulösen oder Hintergrundprozesse zu beenden. Das Telefon zeigt nur dann kein Zubehör an, wenn ich es neu starte.

Mein Problem ist nur ein HTC One M9, Api 22, Android Version 5.1. Wenn ihr helfen könnt, wäre das eine großartige Sache. Ich habe ein paar Tage damit verbracht, es herauszufinden.

Antwort

0

Ich habe einige Verbesserungen.Es funktioniert so etwas .. aber nicht 100% sicher.

boolean check = checkOpenAccessory(); 

Und dann checkOpenAccessory() verwenden, wenn irgendwo gebraucht wird, und wird die reale Sache zurück.

Grundsätzlich wird das zweite Mal funktionieren, nicht 100% sicher, aber es funktioniert.

Refer to this link.