如何在Android中进行多个NFC标签写入

时间:2015-10-16 10:32:04

标签: java android tags nfc

我们应该如何在例如循环中写入多个NFC标签。我们有一组数据应该在Android应用程序启动时写入不同的标签。

当新的NFC标记在范围内时,我们会在onNewIntent()收到通知,但我们想要一个方法,我们有一个类似于此的循环......

for(all elements) {
    writeInfoToTag();
}

但如果没有实际存在带有范围的NFC标签,则无法拨打电话,并且程序无法等待NFC标签而不会崩溃。

我们有读取和写入NFC标签的方法,但此时需要从onNewIntent()调用与标签交互的所有方法。

关于如何做到这一点的任何想法?

2 个答案:

答案 0 :(得分:1)

您可以使用此伪代码实现此目的。

private static int elementNo = 0;

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    if(elementNo<elements.size()){
        writeElementToTag(elements.get(elementNo));
        elementNo++;
    }
}

如果元素大小为n,则必须逐个触摸n个标记。使用android时无法编写所有标记。

答案 1 :(得分:1)

虽然底层硬件通常支持同时处理多个标签,但目前的Android NFC API一次只允许一个标签。因此,等待所有标签出现然后将数据写入所有标签在当前的Android设备上根本不可能。

此外,考虑发现NFC标签作为用户交互的形式(即,用户(有意地)将NFC标签放置在NFC读取器上)。因此,典型的程序流程不是您的应用程序已启动并立即写入标记,而是

  • 您的应用已启动,
  • &#34;等待&#34;对于标签(实际上:在标签发现时通知的寄存器)和
  • 在标记发现时,写入该标记。

因此,您与标记的交互(读/写)从onNewIntent开始(或者调用任何方法来通知您的活动存在新标记)。在那里,您可以决定要写入该特定标记的数据集(例如,通过使用计数器,通过将标记ID与数据库匹配等)。