Ich habe eine Smartcard-Anwendung erstellt, wo ich Daten bis zu 60 KB in einem Byte-Array speichern kann. Aber wenn ich das Array mehrere Male lese, bekomme ich einen Fehler und ich kann nicht mehr auf die Daten zugreifen.Java-Karte Lesen von Daten aus Array
-Code erstellen Array:
public void createFile(short fileID, short fileSize) {
short index = getFileIndex(fileID);
if(listFiles[index] == null) {
listFiles[index] = new byte[fileSize];
}
listfileSizes[index] = fileSize;
}
-Code Daten lesen:
public byte[] readDataFromFile(short fileID, short fileOffset, short length) {
short selFileSize = getFileSize(fileID);
byte[] data = new byte[length];
if (selFileSize < (short)(fileOffset + length)) {
ISOException.throwIt(ISO7816.SW_FILE_FULL);
}
Util.arrayCopy(getFile(fileID), fileOffset, data, (short)0, length);
return (byte[])data;
}
-Code Zugriff lesen:
short data_length = Util.getShort(buf, (short)(offset_cdata + 2));
short file_offset = Util.getShort(buf, offset_cdata);
if(p2 == (byte)0x01) {
Util.arrayCopy(myfile.readDataFromFile(myfile.keepassData1, file_offset, data_length), (short)0, buf, (short)0, data_length);
} else if (p2 == (byte)0x02) {
Util.arrayCopy(myfile.readDataFromFile(myfile.keepassData2, file_offset, data_length), (short)0, buf, (short)0, data_length);
}
wenn ich die App neu installieren kann ich lesen und schreiben, aber nur einige Zeit, bis die Daten blockiert sind. Ich bekomme den Fehler 6f00.
Ok Thanky ich werde es versuchen – schisskiss