问题描述
我已经看过这个问题了: Reading Visa payWave Credit Card Details via NFC on Android
并且我已经开始编写一个可以读取我的 Visa 非接触式卡的应用程序,但是当我点击 Visa 非接触式借记卡时,我什么也没得到,甚至没有检测到 nfc 卡的提示。这是我设置 nfc 适配器的代码,以便它可以读取非接触式卡:
val tagFilters = arrayOf(discoveryTag,discoveryTech)
adapter.enableReaderMode(this,this,NfcAdapter.FLAG_READER_NFC_A or NfcAdapter.FLAG_READER_NFC_B,null)
adapter.enableForegrounddispatch(this,pi,tagFilters,null)
以及当我点击非接触式 EMV 卡时触发的意图:
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
// gets a tag object
val tagFromIntent = intent?.getParcelableExtra<Tag>(NfcAdapter.EXTRA_TAG)
Log.i("NFC_TEST",tagFromIntent.toString())
// it is better to iterate through the tech list and make sure it is what we want
// tagFromIntent?.techList!![0]
// get an instance of the IsoDep
val isoDep = IsoDep.get(tagFromIntent)
if(isoDep == null) {
Log.i("NFC_TEST","Failed to read card")
return
}
}
Visa 非接触式与 Visa Debit 非接触式的 AID 有什么不同吗?但我仍然应该检测到非接触式卡。
我不想使用三角形或方形设备,所以请不要建议使用这些设备。我真的很想在手机上使用非接触式点击功能。
我使用 Google Nexus 4 进行测试。
解决方法
检查您尝试读取的卡片上是否有非接触式徽标。 仍然有很多只有芯片和刷卡的支付卡。 即完全没有非接触式界面。