拔下 USB 后,USB 附件保持连接

Usb Accessory stays connected after usb unplugged

我有一个连接到 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;
        }
    }
}

这 returns 我连接到 USB 配件,但我没有。我有一个开发人员应用程序,它监视 phone 中的所有内容并说同样的话:

UsbAccessory[] accessories = usbManager.getAccessoryList();

附件已连接。我还尝试了诸如触发广播或终止后台进程之类的操作。 phone只有重启才会显示无附件

sendBroadcast(new Intent(UsbManager.ACTION_USB_ACCESSORY_DETACHED));

我的问题只有一台 Htc One M9,Api22,Android5.1 版。 如果你们能提供帮助,那将是一件好事,我花了几天时间试图弄清楚。

我做了一些 improvements.It 类似这样的工作..但不是 100% 确定。

boolean check = checkOpenAccessory();

然后在某处需要的时候使用checkOpenAccessory(),然后return真正的东西。

基本上第二次就可以了,不是100%确定但是可以。

Refer to this link.