我们应该如何在例如循环中写入多个NFC标签。我们有一组数据应该在Android应用程序启动时写入不同的标签。
当新的NFC标记在范围内时,我们会在onNewIntent()
收到通知,但我们想要一个方法,我们有一个类似于此的循环......
for(all elements) {
writeInfoToTag();
}
但如果没有实际存在带有范围的NFC标签,则无法拨打电话,并且程序无法等待NFC标签而不会崩溃。
我们有读取和写入NFC标签的方法,但此时需要从onNewIntent()
调用与标签交互的所有方法。
关于如何做到这一点的任何想法?
答案 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读取器上)。因此,典型的程序流程不是您的应用程序已启动并立即写入标记,而是因此,您与标记的交互(读/写)从onNewIntent
开始(或者调用任何方法来通知您的活动存在新标记)。在那里,您可以决定要写入该特定标记的数据集(例如,通过使用计数器,通过将标记ID与数据库匹配等)。