Hi Paul, My understanding is that those types of transactions always happen at the ISO14443-4 (ISO-DEP) layer, or more accurately ISO7817-4 (APDU) which is built on top of ISO-DEP.
It's a really crappy bug, but should not get in the way of any real use-cases. Nick On Mon, Mar 14, 2011 at 8:12 AM, Paul Christensen < [email protected]> wrote: > Sweet! I found me a real live Android bug! Do I win a hat? :) > > I'm a little out of my element here, and was hoping to be able to work from > code in an existing application, but in light of this, it looks like that > will not be possible. > Can you tell me, will communicating through IsoDep still allow me to > retrieve data like the track2 data from credit cards, assuming I know the > protocols to use? > -- Paul Christensen > > > > On Fri, Mar 11, 2011 at 6:04 PM, Nick Pelly <[email protected]> wrote: > >> Sorry for the late reply, >> >> We have looked into this, and it is indeed a bug. >> >> On 2.3.3, NfcA.connect() and NfcB.connect() fail if the tag also >> enumerates IsoDep. >> >> The good news is that most of the time IsoDep.connect() is what you want >> :) >> >> We will address this issue in a future release. It's a little tricky since >> we need to actually reconnect to the tag to drop back to NfcA/NfcB from >> IsoDep. >> >> Thanks for bringing this to our attention, >> >> Nick >> >> On Mon, Mar 7, 2011 at 10:14 AM, Paul Christensen < >> [email protected]> wrote: >> >>> Thanks. I appreciate you looking in to this. >>> To verify, yes, I am only trying to connect to one tech at a time. >>> I am not connecting to IsoDep, and then attempting to connect to >>> NfcB/NfcA. >>> I only know about IsoDep working because after failing to connect to >>> NfcB, I swapped out my objects and attempted to connect to the same cards >>> using IsoDep, which was successful. >>> >>> -- Paul Christensen >>> >>> >>> >>> On Mon, Mar 7, 2011 at 11:04 AM, Nick Pelly <[email protected]> wrote: >>> >>>> I'll try and reproduce. But I just want to make sure, are you only >>>> connecting NfcB / NfcA, and never connecting IsoDep first? Because you can >>>> only connect one tech at a time. >>>> >>>> Nick >>>> >>>> >>>> On Mon, Mar 7, 2011 at 7:57 AM, Paul Christensen < >>>> [email protected]> wrote: >>>> >>>>> Ok, for #1 I'll just keep trying the card and see if I can manage to >>>>> talk to it. >>>>> For the additional issues, the sequence of events and relevant code is >>>>> as follows: >>>>> I scan a card with my app set to receive the scans. The appropriate >>>>> Activity opens, retrieves a Tag object, and executes an AsyncTask. >>>>> The AsyncTask determines the card technology and based on the card >>>>> technology, attempts to open a connection to that card as follows: >>>>> private static NfcB getNfcBTag(Tag tag) throws Exception >>>>> { >>>>> NfcB myTag = NfcB.get(tag); >>>>> try >>>>> { >>>>> if(!myTag.isConnected()) >>>>> { >>>>> myTag.connect(); >>>>> } >>>>> } >>>>> catch(Exception e) >>>>> { >>>>> Log.e(TAG, e.getMessage()); >>>>> } >>>>> return myTag; >>>>> } >>>>> >>>>> The above method throws an exception on myTag.connect(). The exception >>>>> is a java.IOException, but the message and source are both null, so I have >>>>> no idea why it's happening. Now, if I change this method to be IsoDep >>>>> instead of NfcB (or NfcA, for that matter), I am able to successfully >>>>> connect to the card, send a message to the card, and retrieve a response >>>>> from that card. >>>>> >>>>> >>>>> -- Paul Christensen >>>>> >>>>> >>>>> >>>>> On Sun, Mar 6, 2011 at 10:06 PM, Nick Pelly <[email protected]> wrote: >>>>> >>>>>> Hi Paul, >>>>>> >>>>>> For (1), it is very hard to discover NfcB credit card on the Nexus S. >>>>>> Many NfcB credit cards only work well with high powered readers. That >>>>>> said, >>>>>> if you play with the credit card orientation against the back of the >>>>>> Nexus S >>>>>> (where the NFC antenna is) you should be able to eventually scan it. >>>>>> >>>>>> For (2), (3) and (4), can you provide some sample code, and tell us >>>>>> exactly where it is failing. >>>>>> >>>>>> Nick >>>>>> >>>>>> >>>>>> On Fri, Mar 4, 2011 at 10:30 AM, Paul Christensen < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Ok, so I've learned additional, somewhat less than encouraging >>>>>>> things. >>>>>>> >>>>>>> 1. I have a Discover "Zip" card, no idea what the ISO technology >>>>>>> is, all I do know is the Nexus S does not respond at all to this >>>>>>> card. >>>>>>> 2. I have a Visa NfcB card that will connect as IsoDep, but not >>>>>>> as NfcB. >>>>>>> 3. I have an Amex NfcB card that will connect as IsoDep, but not >>>>>>> as NfcB. >>>>>>> 4. I have a MasterCard NfcA card that will connect as IsoDep, but >>>>>>> not as NfcA. >>>>>>> >>>>>>> Any thoughts would be greatly appreciated. >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Android Developers" group. >>>>>>> To post to this group, send email to >>>>>>> [email protected] >>>>>>> To unsubscribe from this group, send email to >>>>>>> [email protected] >>>>>>> For more options, visit this group at >>>>>>> http://groups.google.com/group/android-developers?hl=en >>>>>>> >>>>>> >>>>>> >>>>> >>>> >>> >> > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

