在Android应用中使用JNA时,当我尝试在USB设备上执行ioctl操作时,遇到LastErrorException
消息Device or resource busy
。我不明白为什么这是或如何处理它。任何人都可以提供任何指导吗?
我实际上正在使用第三方代码段,其来源可见WPA。
我得到的错误如下:
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;
}