2016-04-02 75 views
0

我已經聲明瞭這種本地方法。將無符號字節映射到Java類型(JNI)

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

在本地代碼中,byte是未簽名的。但是,在Java中,無符號的byte不可用。

我需要將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; 

是否有解決此問題的方法?

+0

我不希望在Java中使用帶符號字節的任何問題,並期望它們被映射到JNI中的正確無符號字節。 –

回答

1

只需將值轉換爲byte,這將按預期工作。

sendBuff[1] = (byte) 0xa4; 
相關問題