如何检测设备是否可以读写Mifare经典NFC标签?

时间:2016-09-09 07:35:42

标签: android nfc mifare

有什么方法可以检查设备是否可以读写Mifare经典NFC标签?我正在编写一个应用程序,主要用例是读取和写入Mifare经典标签,所以如果不能,应用程序应显示消息并关闭。

2 个答案:

答案 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;
 }