首页 > 解决方案 > 如何检查主机 android 设备的某些 NFC 类型功能

问题描述

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

另外,我想知道,如果主机设备不支持 NFC type-f 或其 HCE/SE 加密能力,这个问题是由于硬件限制(缺乏主机 NFC 芯片支持)还是软件限制(例如当前ROM不支持),如果是软件限制(可以修复,甚至需要root权限,缺乏NFC芯片固件许可证)我想知道确切的原因以便我可以解决这个问题。

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

标签: javaandroidnfc

解决方案


为了检测是否支持“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 NFC 测试集,并具有一组特定的HCE FeliCa测试。由于它是一个测试套件,用于测试与卡的通信的附加代码似乎在其中。


推荐阅读