我有一个连接到 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 version 5.1 。如果你们能提供帮助,那将是一件好事,我花了几天时间试图弄清楚。