为什么 android NFC 可以读取一些非接触式 emv credit cads 而不是其他的?

问题描述

我已经看过这个问题了: 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 进行测试。

解决方法

检查您尝试读取的卡片上是否有非接触式徽标。 仍然有很多只有芯片和刷卡的支付卡。 即完全没有非接触式界面。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...