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