将无符号字节映射到 Java 类型 (JNI)
Map unsigned byte to Java types (JNI)
我已经声明了这个本地方法。
public native int SentApduToIcCard(byte[] apdu, int apdulen, byte[]data);
在本机代码中,byte
是无符号的。但是,在 Java 中,未签名的 byte
不可用。
我需要将 Java 的 byte
范围之外的值发送到本机代码。例如:
sendBuff[0] = 0x00;
sendBuff[1] = 0xa4;
sendBuff[2] = 0x04;
sendBuff[3] = 0x00;
sendBuff[4] = 0x0b;
sendBuff[5] = 0xa0;
sendBuff[6] = 0x00;
sendBuff[7] = 0x00;
sendBuff[8] = 0x05;
sendBuff[9] = 0x82;
sendBuff[10] = 0x00;
sendBuff[11] = 0x00;
sendBuff[12] = 0x00;
sendBuff[13] = 0x00;
sendBuff[14] = 0x00;
sendBuff[15] = 0x02;
这个问题有解决方法吗?
只需将值转换为 byte
,这将按预期工作。
sendBuff[1] = (byte) 0xa4;
我已经声明了这个本地方法。
public native int SentApduToIcCard(byte[] apdu, int apdulen, byte[]data);
在本机代码中,byte
是无符号的。但是,在 Java 中,未签名的 byte
不可用。
我需要将 Java 的 byte
范围之外的值发送到本机代码。例如:
sendBuff[0] = 0x00;
sendBuff[1] = 0xa4;
sendBuff[2] = 0x04;
sendBuff[3] = 0x00;
sendBuff[4] = 0x0b;
sendBuff[5] = 0xa0;
sendBuff[6] = 0x00;
sendBuff[7] = 0x00;
sendBuff[8] = 0x05;
sendBuff[9] = 0x82;
sendBuff[10] = 0x00;
sendBuff[11] = 0x00;
sendBuff[12] = 0x00;
sendBuff[13] = 0x00;
sendBuff[14] = 0x00;
sendBuff[15] = 0x02;
这个问题有解决方法吗?
只需将值转换为 byte
,这将按预期工作。
sendBuff[1] = (byte) 0xa4;