通过JNA访问USB设备时,Android应用程序“设备或资源忙”

在Android应用程序中使用JNA时,当我尝试在USB设备上执行ioctl操作时,遇到LastErrorException ,消息为Device or resource busy 。 我不明白为什么这是或如何处理它。 任何人都可以提供任何指导吗?

我实际上使用的是第三方代码段,其源代码可在此处查看。

我得到的错误如下:

 E/AndroidRuntime: FATAL EXCEPTION: Thread-556 Process: edu.ucdavis.auditoryenhancer, PID: 31335 com.sun.jna.LastErrorException: [16] Device or resource busy at com.sun.jna.Native.invokeInt(Native Method) at com.sun.jna.Function.invoke(Function.java:390) at com.sun.jna.Function.invoke(Function.java:323) at com.sun.jna.Library$Handler.invoke(Library.java:236) at java.lang.reflect.Proxy.invoke(Proxy.java:393) at biz.source_code.usb.$Proxy0.ioctl(Unknown Source) at biz.source_code.usb.UsbIso.setInterface(UsbIso.java:414) 

我自己的代码导致这个错误堆栈如下:

 // the variable "dev" is an instance of android.hardware.usb.UsbDevice UsbInterface interface = dev.getInterface(2); UsbEndpoint endpoint = dev.getEndpoint(0); UsbDeviceConnection connection = usbMgr.openDevice(dev); new UsbIso(connection.getFileDescriptor(), 1, endpoint.getMaxPacketSize()); try { usbIso.setInterface(getInterfaceNumber(), getAlternateSetting()); } catch (IOException e) { e.printStackTrace(); return false; }