java - 如何检查主机 android 设备的某些 NFC 类型功能
问题描述
我正在制作一个简单的应用程序,它检测运行应用程序的 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 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测试。由于它是一个测试套件,用于测试与卡的通信的附加代码似乎在其中。
推荐阅读
- latex - MathJax 中带有可选参数的自定义宏
- python - 使用 Python 将多个关系表转换为嵌套 JSON 格式
- ios - 列表中的 iOS 数据不保存价值
- java - Kafka为什么要更改商店名称
- linux - 安装多个oracle客户端版本时如何在python中设置oracle客户端库路径
- ruby-on-rails - Ruby On Rails - 带有“do”的“image_tag”不起作用
- javascript - 正则表达式不适用于 chrome,但适用于 safari
- scala - 在scala中注册hive udf - java.net.MalformedURLException:未知协议:s3
- c++ - 初始化客户类型对象向量时出现复制构造函数错误
- ios - 使用 OpenCV 从图像中提取颜色