<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Using TapLinx SDK for Java, NOT Android in TapLinx SDK, TagWriter and TagInfo</title>
    <link>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Using-TapLinx-SDK-for-Java-NOT-Android/m-p/1813055#M10</link>
    <description>&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;P&gt;Greetings!&lt;/P&gt;&lt;P&gt;I have developed successful solutions for reading DESFire smart cards used in Croatian public services, both for:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Dot Net. Multi platform, using &lt;A title="PCSC sharp" href="https://github.com/danm-de/pcsc-sharp" target="_self" rel="nofollow noopener noreferrer"&gt;pcsc-sharp&lt;/A&gt; and "raw" APDU approach.&lt;/LI&gt;&lt;LI&gt;Android. Using TapLinx SDK for Android and high level-approach. For example: &lt;FONT face="andale mono,times"&gt;myDesFire.getUID()&lt;/FONT&gt; instead of raw APDU commands.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Right now, I'm trying to develop a multi platform solution in Java, using TapLinx SDK for Java and high-level approach.&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I rely on &lt;FONT face="andale mono,times"&gt;javax.smartcardio&lt;/FONT&gt; for polling connected card terminals to detect when smart card is inserted or removed, and it works perfectly. In my testing app (JavaFX if that matters), in &lt;FONT face="andale mono,times"&gt;onCardInserted&lt;/FONT&gt; event, I call my own &lt;FONT face="andale mono,times"&gt;cardLogic&lt;/FONT&gt; method. That method tries to connect to smart card. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;In Android, it is very simple:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;public static Card cardLogic(final Intent intent, NxpNfcLib nxpNfcLib, MyCardKeys keys) {&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;//... some code ommited for brevity&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;desFireEV = DESFireFactory.getInstance().getDESFireEV2(nxpNfcLib.getCustomModules());&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;desFireEV.getReader().connect();&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;byte[] uid = desFireEV.getUID();&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;// ...and so on.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;In Java, similar method of mine is:&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;public static Card cardLogic(CardTerminal terminal, MyCardKeys keys) {&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;//... some code ommited for brevity&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;javax.smartcardio.Card javaCard = terminal.connect("*");&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;desFire = DESFireFactory.getInstance().getDESFireEV2(TapLinx.getCustomModules());&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT face="andale mono,times"&gt;// WHAT NOW, I WONDER ???&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;desFire.getReader().connect(); &lt;STRONG&gt;// This does not work, of course. HOW TO associate the context of the javaCard object with getting a concrete reader, so that...&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;byte[] uid = desFire.getUID(); &lt;STRONG&gt;//... I can do this, and more, without raising an exception?&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;So, questions are those in comments of the above code snippets. I'm totally stucked. Probably missing something obvious. but I can not figure out the solution, not even when reading code of both sample apps.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;I also tried raw APDU approach in Java, without TapLinx SDK at all, using just javax.smartcardio, but since smartcardio was actually developed to support contact cards, one can not make more complex operations targeting contactless cards. So, I can read DESFire's UID, select identity app, read app IDs, but I can not read BER TLV files, for example, even if not encrypted.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;Please help.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Thu, 22 Feb 2024 07:34:56 GMT</pubDate>
    <dc:creator>IkarovoPero</dc:creator>
    <dc:date>2024-02-22T07:34:56Z</dc:date>
    <item>
      <title>Using TapLinx SDK for Java, NOT Android</title>
      <link>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Using-TapLinx-SDK-for-Java-NOT-Android/m-p/1813055#M10</link>
      <description>&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;P&gt;Greetings!&lt;/P&gt;&lt;P&gt;I have developed successful solutions for reading DESFire smart cards used in Croatian public services, both for:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Dot Net. Multi platform, using &lt;A title="PCSC sharp" href="https://github.com/danm-de/pcsc-sharp" target="_self" rel="nofollow noopener noreferrer"&gt;pcsc-sharp&lt;/A&gt; and "raw" APDU approach.&lt;/LI&gt;&lt;LI&gt;Android. Using TapLinx SDK for Android and high level-approach. For example: &lt;FONT face="andale mono,times"&gt;myDesFire.getUID()&lt;/FONT&gt; instead of raw APDU commands.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Right now, I'm trying to develop a multi platform solution in Java, using TapLinx SDK for Java and high-level approach.&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I rely on &lt;FONT face="andale mono,times"&gt;javax.smartcardio&lt;/FONT&gt; for polling connected card terminals to detect when smart card is inserted or removed, and it works perfectly. In my testing app (JavaFX if that matters), in &lt;FONT face="andale mono,times"&gt;onCardInserted&lt;/FONT&gt; event, I call my own &lt;FONT face="andale mono,times"&gt;cardLogic&lt;/FONT&gt; method. That method tries to connect to smart card. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;In Android, it is very simple:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;public static Card cardLogic(final Intent intent, NxpNfcLib nxpNfcLib, MyCardKeys keys) {&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;//... some code ommited for brevity&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;desFireEV = DESFireFactory.getInstance().getDESFireEV2(nxpNfcLib.getCustomModules());&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;desFireEV.getReader().connect();&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;byte[] uid = desFireEV.getUID();&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;// ...and so on.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;In Java, similar method of mine is:&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;public static Card cardLogic(CardTerminal terminal, MyCardKeys keys) {&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;//... some code ommited for brevity&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;javax.smartcardio.Card javaCard = terminal.connect("*");&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;desFire = DESFireFactory.getInstance().getDESFireEV2(TapLinx.getCustomModules());&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT face="andale mono,times"&gt;// WHAT NOW, I WONDER ???&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;desFire.getReader().connect(); &lt;STRONG&gt;// This does not work, of course. HOW TO associate the context of the javaCard object with getting a concrete reader, so that...&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;byte[] uid = desFire.getUID(); &lt;STRONG&gt;//... I can do this, and more, without raising an exception?&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;So, questions are those in comments of the above code snippets. I'm totally stucked. Probably missing something obvious. but I can not figure out the solution, not even when reading code of both sample apps.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;I also tried raw APDU approach in Java, without TapLinx SDK at all, using just javax.smartcardio, but since smartcardio was actually developed to support contact cards, one can not make more complex operations targeting contactless cards. So, I can read DESFire's UID, select identity app, read app IDs, but I can not read BER TLV files, for example, even if not encrypted.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;Please help.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 22 Feb 2024 07:34:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Using-TapLinx-SDK-for-Java-NOT-Android/m-p/1813055#M10</guid>
      <dc:creator>IkarovoPero</dc:creator>
      <dc:date>2024-02-22T07:34:56Z</dc:date>
    </item>
    <item>
      <title>Re: Using TapLinx SDK for Java, NOT Android</title>
      <link>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Using-TapLinx-SDK-for-Java-NOT-Android/m-p/1814092#M11</link>
      <description>&lt;P&gt;I've found the solution. So, in case someone encounters similar problem&lt;BR /&gt;code goes like this. BTW, the key is in the &lt;STRONG&gt;&lt;FONT face="andale mono,times"&gt;setTransceive&lt;/FONT&gt;&lt;/STRONG&gt; method!?!?!!!&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;MyApp.TapLinx.getCustomModules().setTransceive(new MyCardApduHandler(new MyCardReader(terminal)));&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;desFire = DESFireFactory.getInstance().getDESFireEV2(MyApp.TapLinx.getCustomModules());&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;desFire.getReader().connect();&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;// Read UID.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;byte[] uid = desFire.getUID();&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;// To do anything further, and unlike Android , you have to set Command Set to ISO.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;desFire.setCommandSet(IDESFireEV1.CommandSet.ISO);&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;// Select ID app...&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;desFire.selectApplication(0);&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;// ...and so on&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;&lt;STRONG&gt;MyCardApduHandler&lt;/STRONG&gt;&lt;/FONT&gt; is barebone:&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;public class MyCardApduHandler implements IApduHandler {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;IReader reader;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;public MyCardApduHandler(IReader reader) {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;this.reader = reader;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;@Override&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;public byte[] apduExchange(byte[] bytes) {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;return reader.transceive(bytes);&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;@Override&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;public IReader getReader() {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;return reader;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;}&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT face="andale mono,times"&gt;MyCardReader&lt;/FONT&gt;&lt;/STRONG&gt; is as follows:&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;public class MyCardReader implements IReader {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;CardTerminal mTerminal;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;CardChannel mKanal;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;Card mJavaCard;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;ProtocolDetails mProtokol;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;boolean isConnected = false;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;public MyCardReader(CardTerminal terminal) {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;mTerminal = terminal;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;@Override&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;public byte[] transceive(byte[] bytes) {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;ResponseAPDU res;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;try {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;res = mKanal.transmit(new CommandAPDU(bytes));&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;} catch (CardException e) {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;throw new NxpNfcLibException(e, e.getMessage());&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;}&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;return res.getBytes();&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;@Override&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;public void connect() {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;if (!isConnected) {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;try {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;mTerminal.waitForCardPresent(0);&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;mJavaCard = mTerminal.connect("*");&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;mKanal = mJavaCard.getBasicChannel();&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;mProtokol = new ProtocolDetails();&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;mProtokol.uid = Commands.uid(mKanal);&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;// TODO: Other components of the protocol.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;isConnected = true;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;} catch (CardException e) {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;throw new NxpNfcLibException(e, e.getMessage());&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;}&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;}&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;@Override&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;public void close() {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;if (isConnected) {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;try {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;if (mKanal.getChannelNumber() != 0) mKanal.close();&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;mJavaCard.disconnect(false);&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;isConnected = false;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;} catch (Exception e) {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;throw new NxpNfcLibException(e, e.getMessage());&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;}&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;}&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;@Override&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;public boolean isConnected() {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;return isConnected;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;@Override&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;public void setTimeout(long l) {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;throw new NotSupportedException("SCardReader: metoda setTimeout nije podržana. ");&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;@Override&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;public long getTimeout() {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;throw new NotSupportedException("SCardReader: metoda getTimeout nije podržana. ");&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="andale mono,times"&gt;@Override&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;public ProtocolDetails getProtocolDetails() {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;return mProtokol;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;}&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;}&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;And, &lt;FONT face="andale mono,times"&gt;Commands.uid(mKanal)&lt;/FONT&gt; is achieved with raw APDU:&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;public static byte[] uid(CardChannel kanal) throws CardException, RuntimeException {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;CommandAPDU cmd = new CommandAPDU(new byte[] { (byte) 0xFF, (byte) 0xCA, (byte) 0x00, (byte) 0x00, (byte) 0x00 });&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;ResponseAPDU res = kanal.transmit(cmd);&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;if (res.getSW1() != 0x90 &amp;amp;&amp;amp; res.getSW2() != 0x00) throw new RuntimeException(String.format("uid: greška SW1 SW2 = %02X %02X", res.getSW1(), res.getSW2()));&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;return res.getData();&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;}&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Too bad that most of that is not anywhere near the sample apps...&lt;/P&gt;</description>
      <pubDate>Fri, 23 Feb 2024 05:24:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Using-TapLinx-SDK-for-Java-NOT-Android/m-p/1814092#M11</guid>
      <dc:creator>IkarovoPero</dc:creator>
      <dc:date>2024-02-23T05:24:21Z</dc:date>
    </item>
  </channel>
</rss>

