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

时间:2016-05-20 21:28:57

标签: java android jna

在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;
}

0 个答案:

没有答案