2016-07-11 133 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.