拔掉电源后,Usb附件保持连接状态

时间:2016-07-11 18:01:52

标签: android usb android-5.1.1-lollipop accessory

我有一个连接到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版。 如果你们可以提供帮助,那将是一件好事,我花了几天时间试图解决这个问题。

1 个答案:

答案 0 :(得分:0)

我做了一些改进。它的工作原理是这样......但不是100%肯定。

boolean check = checkOpenAccessory();

然后在某处需要时使用checkOpenAccessory()并返回真实的东西。

基本上第二次会起作用,而不是100%肯定但是有效。

Refer to this link.