Как поместить Uid в текстовое представление с acr122u?
Я использую код ниже, но он всегда вылетает. Я хочу UID в данных textview. Может кто-нибудь мне помочь? Я пользуюсь библиотекой от asc
reader.setOnStateChangeListener(new Reader.OnStateChangeListener() {
@Override
public void onStateChange(int slotNum, int prevState, int currState) {
//De APDU command om de UID uit te lezen
byte[] command = {(byte)0xFF, (byte)0xCA, (byte)0x00, (byte)0x00, (byte)0x00};
final byte[] response = new byte[256];
if(currState == Reader.CARD_PRESENT) {
try {
reader.power(slotNum, Reader.CARD_WARM_RESET);
reader.setProtocol(slotNum, Reader.PROTOCOL_T0 | Reader.PROTOCOL_T1);
reader.transmit(slotNum, command, command.length, response, response.length);
runOnUiThread(new Runnable() {
@Override
public void run() {
TextView data = (TextView) findViewById(R.id.LidkaartID_detail);
//data.append(Arrays.toString(response));
Toast.makeText(MainActivity.this, Arrays.toString(response), Toast.LENGTH_LONG).show();
}
});
} catch (ReaderException e) {
e.printStackTrace();
}
}
}
});
1 ответ
Вероятно, это потому, что вы пытаетесь обновить пользовательский интерфейс из фонового потока. Использовать этот:
runOnUiThread(new Runnable() {
@Override
public void run() {
textView.append(text);
}
});