Как поместить 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);
    }
});
Другие вопросы по тегам