有什么方法可以检查设备是否可以读写Mifare经典NFC标签?我正在编写一个应用程序,主要用例是读取和写入Mifare经典标签,所以如果不能,应用程序应显示消息并关闭。
答案 0 :(得分:1)
使用android.nfc.tech中的类,您可以从扫描的标签中枚举TagTechnologies列表。
来自https://developer.android.com/reference/android/nfc/tech/TagTechnology.html的文档:
所有Android NFC设备必须提供以下内容 TagTechnology实施。
- NfcA(也称为ISO 14443-3A)NfcB(也称为ISO 14443-3B)
- NfcF(也称为JIS 6319-4)NfcV(也称为ISO 15693)IsoDep
- NFC论坛类型1,类型2,类型3或类型4兼容标签上的Ndef
有 是Android NFC设备的可选项,可提供以下功能 TagTechnology实施。 如果未提供,则为Android 设备永远不会通过getTechList()枚举该类。
- MifareClassic
- ...
(强调我的)
我不确定这对您是否足够,或者您是否需要区分不提供Mifare Classic的标签和设备没有实现支持?或者,如果您需要在扫描标签之前确定设备支持?
答案 1 :(得分:0)
public boolean deviceSupportsMifareClassic() {
FeatureInfo[] info = mContext. getPackageManager().getSystemAvailableFeatures();
for (FeatureInfo i : info) {
String name = i.name;
if (name != null && name.equals("com.nxp.mifare")) {
return true;
}
}
return false;
}