SafeUsbRequest class added hoping to fix #40 bug

pull/178/head
Felipe Herranz 2016-04-17 12:25:50 +02:00
rodzic 1b470fa89d
commit 1d78e71c21
1 zmienionych plików z 34 dodań i 0 usunięć

Wyświetl plik

@ -0,0 +1,34 @@
package com.felhr.utils;
import android.hardware.usb.UsbRequest;
import java.lang.reflect.Field;
import java.nio.ByteBuffer;
public class SafeUsbRequest extends UsbRequest
{
static final String usbRqBufferField = "mBuffer";
static final String usbRqLengthField = "mLength";
@Override
public boolean queue(ByteBuffer buffer, int length)
{
Field usbRequestBuffer;
Field usbRequestLength;
try
{
usbRequestBuffer = UsbRequest.class.getDeclaredField(usbRqBufferField);
usbRequestLength = UsbRequest.class.getDeclaredField(usbRqLengthField);
usbRequestBuffer.setAccessible(true);
usbRequestLength.setAccessible(true);
usbRequestBuffer.set(this, buffer);
usbRequestLength.set(this, length);
} catch (Exception e)
{
throw new RuntimeException(e);
}
return super.queue(buffer, length);
}
}