On Wed, Feb 23, 2011 at 8:45 AM, davemac <[email protected]> wrote:
> What you're saying doesn't jive with the documentation, which says the > following (on http://developer.android.com/guide/topics/nfc/index.html): > > Specifiying [sic] multiple technologies within the same list tells the > system to filter tags that support all of the technologies. This particular sentence is a little confusing in the docs, i'll try and have it improved. > The > example below never filters a tag because no tag supports all of the > technologies at once. You can remove the ones that you do not need. > The docs say a tag will only match if all tag technologies are listed > in my tech-list, No the docs don't say that. There is a better explanation here, which matches with how I explained it, which is how it is :) http://developer.android.com/reference/android/nfc/NfcAdapter.html#ACTION_TECH_DISCOVERED """ A tag matches if any of the tech-list sets is a subset of Tag.getTechList()<http://developer.android.com/reference/android/nfc/Tag.html#getTechList()>. Each of the tech-lists is considered independently and the activity is considered a match is any single tech-list matches the tag that was discovered. This provides AND and OR semantics for filtering desired techs. """ and all tech-list technologies are implemented by the > tag. You're saying that the tag's technologies only need to match a > sub-set of the tech-list. yes > Or are you saying that a MifareUltralight > tag only reports MifareUltralight technology? No. > Or that the docs are > wrong? > No they're just a little confusing. > I have a related question that I hope you don't mind answering here as > well. To build an intent filter in code that supports tech, how do you > specify the techlists on it? Or does this only work in foreground > dispatch mode? > I am a little hazy on the details for this one, but I believe the best practice is to define all the intent filters you might want in the manifest, and then turn intent-filters on and off at run-time. > - dave > > On Feb 23, 12:41 am, Nick Pelly <[email protected]> wrote: > > On Tue, Feb 22, 2011 at 6:50 PM, davemac <[email protected]> wrote: > > > I'm reading the documentation on NFC tags and intent filters to match > > > on. For an action of ACTION_TECH_DISCOVERED, the intent filter must > > > list the technologies to match on, using a filter file. What I wanted > > > clarification on is whether or not I need to also specify for example > > > NfcA when I'm looking for a Mifare Utralight tag. > > > > > For the Mifare Ultralight tag, the documentation says this: > > > NfcA will also be enumerated on the tag, because all MIFARE Ultralight > > > tags are also NfcA tags. > > > > > This suggests to me that my XML filter file should say this: > > > > > <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> > > > <tech-list> > > > <tech>android.nfc.tech.NfcA</tech> > > > <tech>android.nfc.tech.MifareUltralight</tech> > > > </tech-list> > > > </resources> > > > > > because if the tag is enumerating NfcA in addition to > > > MifareUltralight, my intent filter will only match if I specify both > > > technologies, not just MifareUltralight. Is that true? This applies to > > > IsoDep as well, which enumerates both NfcA and NfcB, in which case I > > > would need to specify all three. True? I don't have available hardware > > > to test this for myself. Thanks for your help. > > > > You do not need to specify both NfcA and MifareUltralight. You can just > > specify MifareUltralight. The <tech-list> only requires a subset of > tech's > > in order to match. > > > > In the case of MIFARE Ultralight, it happens to always be based on NfcA > > technology. So tags with the MifareUltralight tech will always also have > the > > NfcA tech. So there is no harm also putting NfcA in the <tech-list>. But > it > > is not strictly required. > > > > Nick > > -- > 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

