如何检查主机 android 设备的某些 NFC 类型功能
How to check certain NFC type capability of the host android device
我正在制作一个简单的应用程序,用于检测运行该应用程序的 android 设备支持 NFC type-f(FeliCa) 及其 HCE/SE 加密功能。
另外,我想知道,如果主机设备不支持NFC type-f或其HCE/SE加密能力,这个问题是否是由于硬件限制(缺少主机NFC芯片支持) , 或软件限制(例如当前的ROM不支持它),和 如果是软件限制(可以修复,甚至需要root权限,缺少NFC芯片固件许可证)我想知道确切原因,以便我解决这个问题。
但是我不知道如何检查某种NFC类型的主机能力,也没有提到Android API检查某种NFC类型的支持。
为了检测是否支持 'NFC-F' 使用:
PackageManager.FEATURE_NFC_HOST_CARD_EMULATION_NFCF
如:
if (getPackageManager().hasSystemFeature(
PackageManager.FEATURE_NFC_HOST_CARD_EMULATION_NFCF)) {
// has feature
}
这是通过检查 Android 开源项目发现的 - FeliCa 的主机卡仿真.
AOSP 文档指出 HCE FeliCa 需要支持 NFC-F (JIS 6319-4) 标准的 NFC 硬件。
AOSP 文档进一步引用了 Android 兼容性测试套件,具体 Android 9.0 test set for NFC can be found here and has a specific set of tests of HCE FeliCa。由于它是一个测试套件,用于测试与卡的通信的附加代码似乎在其中。