我正在android.hardware.usb中使用requestWait()函数。但这会导致 ANR错误。此功能将无限期等待。
另一个功能是requestWait(time:long)
。但是可以在Android API 26 上使用。我的设备 API 级别为21。
public UsbRequest requestWait() {
UsbRequest request = null;
try {
// -1 is special value indicating infinite wait
request = native_request_wait(-1);
} catch (TimeoutException e) {
// Does not happen, infinite timeout
}
if (request != null) {
request.dequeue(
mContext.getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.O);
}
return request;
}
public UsbRequest requestWait(long timeout) throws TimeoutException {
timeout = Preconditions.checkArgumentNonnegative(timeout, "timeout");
UsbRequest request = native_request_wait(timeout);
if (request != null) {
request.dequeue(true);
}
return request;
}
我在上面的代码中使用第一个函数。第二个功能在较高的API级别启用。如何解决这种情况。