Как найти NFC стек (чип) "NXP vs Broadcom" на устройствах Android
Есть ли способ определить NFC-стек (или чипсет) на устройстве Android? Я создаю приложение с пользовательской реализацией для класса NfcV (теги ISO15693). Оказывается, на старых устройствах, таких как Nexus S, Galaxy S2, Nexus 7, чипсет NFC от NXP, и единственные поддерживаемые теги ISO15693 - это теги NXP ICODE. У меня есть пользовательская реализация, которая опирается на функцию transceive. Прекрасно работает с тегами TI и ST Micro. Но проблема в том, что на таких устройствах, как Nexus 10, Nexus 4 и SGS4, Google начал использовать трансивер NFC Broadcom и их стек NFC, который имеет встроенную поддержку тегов ISO15693. Можно ли программно идентифицировать чипсет NFC? Если так, как?
3 ответа
Все устройства на базе NXP NFC поддерживают MifareClassic
тэги, в то время как у Broadcom нет такой поддержки. Вы можете проверить в приложении, есть ли эта поддержка, как описано в /questions/1279813/isklyuchite-ne-android-telefonyi-nxp-s-nfc-naprimer-nexus-410/1279832#1279832.
Когда вы пишете "единственные поддерживаемые теги ISO15693 - это теги NXP ICODE", я думаю, вы имеете в виду, что чтение и запись сообщений NDEF для тегов ISO15693 поддерживается только для тегов NXP ICODE для таких устройств (поскольку связь работает с использованием команд ISO 15693). на этих устройствах NFC на основе NXP). Если / когда (если когда-либо) эти устройства будут обновлены, чтобы также поддерживать хранение сообщений NDEF для других тегов ISO15693, нужно проверить MifareClassic
поддержка больше не будет работать, очевидно...
Угадай здесь, но вы можете попробовать поймать все технологический фильтр, как
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<tech-list>
<tech>android.nfc.tech.NfcA</tech>
</tech-list>
</resources>
Который читает большинство карт, которые я пробовал, не поддерживается чипами Broadcom. Затем вы можете проверить наличие пустого или нулевого NdefMessage. Если он содержит информацию, то это чип NXP. В противном случае его Broadcom.
Это нарушает концепцию наличия очень узких фильтров, но я не уверен, как бы вы сделали это иначе.
Это также может не сработать для s4, потому что пользовательская прошивка Samsung просто отклоняет несовместимые теги.
Также может быть и другой способ, потому что при сканировании тега точный технический список (все совместимые) отображается в logcat.
Я сильно сомневаюсь, что это возможно. Доступ ко всей информации об оборудовании обычно осуществляется через: http://developer.android.com/reference/android/os/Build.html