2016-07-11 54 views
0

我有一個應用程序連接到一個USB附件。很簡單,但即使USB電纜拔出後附件也保持連接狀態。usb附件在拔掉usb後保持連接

這是我的代碼:

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; 
     } 
    } 
} 

這將返回我,我連接到USB附件,但我不是。我有一個開發人員的應用程序,監視手機中的一切,並說同樣的事情:

UsbAccessory[] accessories = usbManager.getAccessoryList(); 

配件已連接。我也試過類似觸發廣播或殺死後臺進程。只有當我重新啓動它時,它纔會顯示沒有配件。

sendBroadcast(new Intent(UsbManager.ACTION_USB_ACCESSORY_DETACHED)); 

我的問題是隻有Htc One M9,Api 22,Android版本5.1。 如果你們能幫上忙是件好事,我花了幾天的時間試圖弄明白。

回答

0

我做了一些改進。它的工作原理是這樣的..但不是100%肯定。

boolean check = checkOpenAccessory(); 

然後使用checkOpenAccessory()當需要某處並且將返回真實的東西。

基本上第二次將工作,不是100%肯定,但它的工作。

Refer to this link.