将无符号字节映射到Java类型(JNI)

时间:2016-04-02 04:27:12

标签: java java-native-interface unsigned

我已经宣布了这种原生方法。

public  native  int SentApduToIcCard(byte[] apdu, int apdulen, byte[]data);

在本机代码中,byte是未签名的。但是,在Java中,无符号byte不可用。

我需要将byte范围的Java之外的值发送到本机代码。例如:

    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;

这个问题有解决方法吗?

1 个答案:

答案 0 :(得分:1)

只需将值转换为byte,这将按预期工作。

sendBuff[1] = (byte) 0xa4;