title: Unable to Claim WebUSB Interface(device or resource busy 16) from Android Tablet. Windows works fine
body: <p>I'm trying to connect a USB Thermal Printer to my Android Tablet (Samsung Galaxy Tab S4, Android 9) via WEBUSB but I'm getting this error when trying to claim the interface:
  "Failed to claim interface 0: Device or resource busy (16)"</p>
  
  <p>I'm posting the code but I don't think the issue is here since it works fine on Windows 10(after changing the default driver to WinUSB using Zadig):</p>
  
  <pre><code>this.printerProvider = navigator['usb'];
          this.printerProvider.requestDevice({filters: []})
              .then(selectedDevice =&gt; {
                  this.device = selectedDevice;
                  return this.device.open();
              })
              .then(() =&gt; {
                  return this.device.selectConfiguration(1);
              })
              .then(() =&gt; {
                  return this.device.claimInterface(this.device.configuration.interfaces[0].interfaceNumber);
              })
              .then(() =&gt; {
                  for (let ep of this.device.configuration.interfaces[0].alternate.endpoints) {
                      if (ep.direction == 'out') {
                          this.endpoint = ep;
                          console.log('USB PRINTER CONNECTED')
                      }
                  }
              })
              .catch((err) =&gt; {
                  console.log(err);
              })
  </code></pre>
  
  <p>and in fact I got the same result using the nice tool provided in this article:
  <a href="https://labs.mwrinfosecurity.com/blog/webusb/" rel="nofollow noreferrer">https://labs.mwrinfosecurity.com/blog/webusb/</a>
  this tool basically tries to claim all the interfaces.</p>
  
  <p>So, my guess is that Android itself has claimed the interface. 
  I've also tried to enable the developer options to see if there was something useful there but I didn't find anything. </p>
  
  <p>Any help is very appreciated.</p>
  
  <p>Mat</p>