如何检查主机Android设备的某些NFC类型功能

时间:2019-01-19 19:45:42

标签: java android nfc

我正在制作一个简单的应用程序,用于检测运行该应用程序的android设备,该设备支持NFC type-f(FeliCa)及其HCE / SE加密功能。

我还想知道,如果主机设备不支持F型NFC或它的HCE / SE加密功能,那么此问题是由于硬件限制(缺少主机NFC芯片支持)还是软件限制引起的(例如当前的ROM不支持它),以及  如果是软件限制(可以解决,甚至需要root用户许可,缺少NFC芯片固件许可证),我想知道确切原因以便解决该问题。

但是我不知道如何检查某些NFC类型的主机功能,也没有提到要检查某些NFC类型支持的Android API。

1 个答案:

答案 0 :(得分:0)

要检测是否支持'NFC-F',请使用:

PackageManager.FEATURE_NFC_HOST_CARD_EMULATION_NFCF

如:

 if (getPackageManager().hasSystemFeature(
         PackageManager.FEATURE_NFC_HOST_CARD_EMULATION_NFCF)) {
    // has feature
 }

这是通过选中Android Open Source Project - Host Card Emulation of FeliCa发现的。

AOSP文档指出 HCE FeliCa需要支持NFC-F(JIS 6319-4)标准的NFC硬件。

有关AOSP文档的其他内容,参考了Android兼容性测试套件,特定的Android 9.0 test set for NFC can be found here和一组特定的测试HCE FeliCa。由于它是一个测试套件,因此似乎包含用于测试与卡的通信的其他代码。