类似的问题 - 如何在Android中读取检测到的NFC标签(NDEF内容)详细信息?
我希望我的android应用程序能够读取和解析检测到的NDEF消息。
我已经编辑了AndroidManifest.xml来检测nfc标签,并添加了意图过滤器,如下所示
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
我相信这很好,因为当我使用SDK附带的NFCDemo示例应用程序创建MockNDEF标签时,当我可以选择处理这些生成的标签的应用程序列表出现时,我的应用程序就会出现。然后我单击我的应用程序,它会毫无问题地打开,我只需要一种方法来读取在NDEF消息中传递给它的数据。代码:
Tag myTag = (Tag) nfcintent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
// get NDEF tag details
Ndef ndefTag = Ndef.get(myTag);
...
NdefMessage ndefMesg = ndefTag.getCachedNdefMessage();
在一个类似的问题中,我发现了很多类似的答案。我的问题是代码行
"Tag myTag = (Tag) nfcintent.getParcelableExtra(NfcAdapter.EXTRA_TAG);"
我得到错误“NFC内容无法解析”,我意识到代码的作者可能将NFC内容作为一个占位符,用于特定于我的应用程序的意图,但是我不确定我应该在它的位置放什么。
我启动应用程序的主要活动如下所示
public class TabsActivity extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TabHost tabHost = getTabHost();
// Tab for Graph
TabSpec graphspec = tabHost.newTabSpec("Graph");
// setting Title and Icon for the Tab
graphspec.setIndicator("Graph");
Intent graphIntent = new Intent(this, GraphActivity.class);
graphspec.setContent(graphIntent);
// Tab for Intro
TabSpec introspec = tabHost.newTabSpec("Intro");
introspec.setIndicator("Intro");
Intent introIntent = new Intent(this, IntroActivity.class);
introspec.setContent(introIntent);
// Adding all TabSpec to TabHost
tabHost.addTab(introspec); // Adding intro tab
tabHost.addTab(graphspec); // Adding graph tab
}
}
我认为当这启动应用程序时,必须处理NFC标签。如果我可以从标签访问NDEFMessage,我已经能够使用android示例应用程序中的NdefMessageParser解析它。我想解析NDEF消息中的信息,并最终让应用程序中的每个选项卡都可以访问这些信息。
要获得传递NFC标签来启动活动的意图(在我的例子中是“nfcintent ”),只需使用
Intent nfcintent = getIntent();
尝试此代码段从标记中提取消息:
Parcelable[] rawMsgs = intent
.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
NdefMessage msg = (NdefMessage) rawMsgs[0];
extractMessage(msg);
private void extractMessage(NdefMessage msg) {
byte[] array = null;
array = msg.getRecords()[0].getPayload();
}
也可以看看这个NFC读写器的例子
我有一个应用程序可以读取一个NDEF标签,没什么大不了的:-) 我找到了这个链接:如何发现NFC标签是否还在Android的范围内?什么是一个开始,但我不知道如何更新标签。 我很挣扎,我甚至不知道我尝试做的事情在技术上是否可行。 有没有人知道怎么做的?干杯 对不起,我试着看了一些教程和例子,但我还是不明白。 这是我的全部密码。读取标签需要长得多的时间,有时并不需要。我不知道如何和在哪里更新标签,以
我正在使用以下命令从Mifare超轻型标签读取二进制块: 但是现在我想使用ACR1252 NFC阅读器精确地执行存储在Mifare Ultralight标签中的NDEF消息。我必须使用哪个命令来获取完整的 NDEF 消息?NDEF 消息存储在标签中的哪个位置?
我正在尝试创建一个 NFC 标签,该标签将触发两个单独的操作: 打开蓝牙连接 启动应用程序(或前往游戏商店) 我使用 nfc-eclipse-plugin 创建了一个包含两个合适记录的消息,但是,当写入标签时,它总是只触发第一个操作。两者都单独工作,但第二个总是被忽略。 我知道一个NFC标签上的2个NDEF消息/记录的答案-Android说你不能在一个标签上有两条独立的消息,只有一条消息中的多条记
有人知道为什么会这样吗? //TimerTask类
我有一台LG D320nAndroid手机,elechouse的PN532 nfc模块和斯托尔曼的NFCPlayer,我可以用它正确阅读NFC标签。 我在这里测试了一个样本:https://github.com/grundid/host-card-emulation-sample 当我把一台Android设备读作标签,另一台Android设备读作阅读器时,它工作得很好。但我无法通过NFCPlaye