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

Reply via email to