1. 从 Intent 中获取 TagInfo,初始化 TagInfo 实例。
2. TagInfo 实例调用 getTagSupportedProfiles()接口查询当前 Tag 支持的技
术或协议类型型。
3. 调用 isProfileSupported(int profile)接口查询是否支持 NfcA、IsoDep、
MifareClassic 等类型。若支持,可使用 TagInfo 实例构造 NfcATag、
IsoDep、MifareClassic 等实例。
4. 根据不同的 Tag 技术类型的实例,调用不同的 API 完成 Tag 的访问。
// 从 Intent 中获取 TagInfo,初始化 TagInfo 实例TagInfo tagInfo =
getIntent().getParcelableExtra(NfcController.EXTRA_TAG_INFO);
// 查询 Tag 设备支持的技术或协议,返回值为支持的技术或协议列表
int[] profiles = tagInfo.getTagSupportedProfiles();
// 查询是否支持 NfcA,若支持,构造一个 NfcATag
boolean isSupportedNfcA =
tagInfo.isProfileSupported(TagManager.NFC_A);
if (isSupportedNfcA) {
NfcATag tagNfcA = NfcATag.getInstance(tagInfo);
}
// 查询是否支持 NfcB,若支持,构造一个 NfcBTag
boolean isSupportedNfcB =
tagInfo.isProfileSupported(TagManager.NFC_B);
if (isSupportedNfcB) {
NfcBTag tagNfcB = NfcBTag.getInstance(tagInfo);
}
// 查询是否支持 IsoDep,若支持,构造一个 IsoDepTag
boolean isSupportedIsoDep =
tagInfo.isProfileSupported(TagManager.ISO_DEP);
if (isSupportedIsoDep) {
IsoDepTag tagIsoDep = new IsoDepTag(mTagInfo);
}
// 查询是否支持 NDEF,若支持,构造一个 NdefTag
boolean isSupportedNdefDep =
tagInfo.isProfileSupported(TagManager.NDEF);
if (isSupportedNdefDep) {
NdefTag tagNdef = new NdefTag(mTagInfo);
}
// 查询是否支持 MifareClassic,若支持,构造一个 MifareClassicTag
boolean isSupportedMifareClassic =
tagInfo.isProfileSupported(TagManager.MIFARE_CLASSIC);
if (isSupportedMifareClassic) {
MifareClassicTag mifareClassicTag =
MifareClassicTag.getInstance(tagInfo);
}
// 查询是否支持 MifareUltralight,若支持,构造一个 MifareUltralightTag
boolean isSupportedMifareUltralight = tagInfo.isProfileSupported(TagManager.MIFARE_ULTRALIGHT);
if (isSupportedMifareUltralight) {
MifareUltralightTag mifareUltralightTag =
MifareUltralightTag.getInstance(tagInfo);
}
鸿蒙HarmonyOS读取NFC卡片类型开发步骤
https://xpanx.com/
评论