Android NFC Techs - PullRequest
       2

Android NFC Techs

0 голосов
/ 31 августа 2011

Может ли кто-нибудь объяснить мне, почему поддерживаемые технологии тегов приложения Android объявляются ОБА программно и в файле XML?Во всех примерах, которые я видел до сих пор, это так.Взгляните на этот учебник, например: http://mifareclassicdetectiononandroid.blogspot.com/2011/04/reading-mifare-classic-1k-from-android.html

Код:

mTechLists = new String[][] { new String[] { MifareClassic.class.getName() } };

Файл XML:

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <tech-list> 
        <tech>android.nfc.tech.NfcA</tech> 
        <tech>android.nfc.tech.MifareClassic</tech> 
    </tech-list>
</resources> 

1 Ответ

1 голос
/ 02 сентября 2011

Они достигают разных вещей. Технологии, которые вы указываете в файле XML, действуют как фильтр намерений для вашей Деятельности. То есть, если фильтр соответствует, ваша активность будет запущена. Однако может быть больше действий, соответствующих фильтру, и в этом случае пользователю нужно будет выбрать приложение для обработки тега.

Технологии, которые вы устанавливаете программно с помощью enableForegroundDispatch(), могут использоваться для обхода других приложений; если ваша активность находится на переднем плане, вы можете указать службе NFC отправить все теги NFC, которые соответствуют фильтру, вашей активности. Таким образом, даже если другое действие имеет точно такой же фильтр, средство выбора приложений не появится, и намерение перейдет прямо к вашему действию.

В большинстве приложений вы захотите и то и другое - это раздражает, когда выбирается Activity, когда вы сканируете тег в своем приложении. Обязательно сделайте фильтр точным - не фильтруйте то, что вас не интересует.

...