小编Mar*_*kus的帖子

在Android中阅读多个NFC标签.当屏幕解锁时,IsoDep-tag不会读取

我一直在尝试创建一个可以读取两种不同类型的NFC标签的应用程序.一个应该是HCE-IsoDep,在Nexus 5上模拟,一个是Ndef-tag.我遇到了一个小问题:

我设法读取两种类型的标签,但不是我想要的方式.Ndef标签完全没问题.当我尝试阅读我遇到问题的HCE标签时.我只能在手机打开时读取标签,我模拟标签打开(屏幕打开,但锁定打开).每当我解锁屏幕时,它就不会再进行交互了,据我所知,它试图反射.

如果我试图在没有它的情况下onNewIntent直接进行操作onTagDiscovered,那么在HCE设备被锁定和解锁时它都可以工作,但是我无法读取Ndef标签.在logcat中,我收到消息:NfcService LLCP Activation Message当我解锁时读取HCE标签.

当锁定我收到消息:NativeNfcTag Connect to a tag with a different handle(在此之前,我得到:audio_hw_primary select_devices: out_snd_device(2: speaker) in_snd_device(0: ))

我的代码如下:

主要:

public class NfcReader extends Activity implements OnMessageReceived {

private static String TAG = NfcReader.class.getSimpleName();

private Button sendButton;
private ProgressBar callProgress;


private NfcAdapter nfcAdapter;
private PendingIntent pIntent;
private IntentFilter[] writeTagFilters;
private String[][] mTechLists;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    TextView dateView = (TextView) findViewById(R.id.dateTextView);

    nfcAdapter = …
Run Code Online (Sandbox Code Playgroud)

android nfc hce

6
推荐指数
1
解决办法
4836
查看次数

通过 HCE 模拟信用卡

我正在尝试开发一个在 Android (4.4) 上通过 HCE 模拟信用卡的应用程序。我有一个可以从 NFC 贴纸读取的目标应用程序,我现在希望通过在我的设备上模拟 NFC 来实现相同的结果。该应用程序支持读取 ISO 14443-4 Type A/IsoDep 非常好,因为这是我正在模拟的。格式应用程序读取我理解是:“B5105105105105100 ^ CARDDATA ^ 121222200000181000000,5105105105105100 = 121222200000181000000”(在这个例子中我使用MC testcard数)。目标是让目标应用程序接收我以正确格式发送的数据,但我尚未实现这一点。我曾尝试检查其他示例,但它们很难找到,而且我的知识在这一点上有些有限。

我已经在我的 apduservice.xml 中设置了目标应用程序需要的 AID

现在的问题是如何将正确的数据发送到目标应用程序?我想同时发送 track1 "B5105105105105100^CARDDATA^121222200000181000000" 和 track2 "5105105105105100=121222200000181000000" 是否需要通过 ADP/Du 服务通过 Iap 验证更多的文件?

我尝试了以下但没有成功:

代码:

public static String pan = "B5105105105105100^CARDDATA^121222200000181000000,5105105105105100=121222200000181000000";

@Override
public byte[] processCommandApdu(byte[] apdu, Bundle extras) {
    byte[] response = new byte[] {};

    return response = pan.getBytes();
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?感谢您的任何建议。

payment android emv nfc hce

2
推荐指数
1
解决办法
2710
查看次数

标签 统计

android ×2

hce ×2

nfc ×2

emv ×1

payment ×1