问题描述
我是Android的业余应用程序开发人员。带着这个问题,我想检查一下是否值得学习NFC。
我的目标是编写一个程序,该程序可以跟踪我在银行卡终端通过NFC用手机付款的银行卡付款。
在建议的标题中,我的问题是,是否可以“嗅探”我的银行应用和银行卡终端的NFC流量,并获取有关付款的一些信息。 进一步的问题,如果这不可能,是否有可能直接与我的bank-app通信并获取信息?
解决方法
简短的回答是“否”,您不能嗅探NFC流量。
通常,对于银行卡,它们被装入到主机操作系统无法访问的NFC控制器的安全元素中。
请参阅https://developer.android.com/guide/topics/connectivity/nfc/hce
上的说明安全元素本身执行与NFC终端的通信,并且交易中完全不涉及Android应用程序。交易完成后,Android应用程序可以直接向安全元素查询交易状态并通知用户。
因此,手机上安装的任何银行应用程序都与基于NFC的交易无关。
尽管您的银行应用程序可以做到,但您也许可以在交易后查询安全元素。