如何从检测到的NFC标签(NDEF消息)中读取. Android NFC

如何从检测到的NFC标签(NDEF消息)中读取. Android NFC,第1张

概述相似问题-HowtoreaddetectedNFCtag(NDEFcontent)detailsinandroid?我希望我的Android应用程序能够读取和解析检测到的NDEF消息.我已经编辑了AndroidManifest.xml以检测nfc标签,并且添加了如下所示的意图过滤器<intent-filter><actionandro

相似问题-How to read detected NFC tag (NDEF content) details in android?

我希望我的AndroID应用程序能够读取和解析检测到的NDEF消息.

我已经编辑了AndroIDManifest.xml以检测nfc标签,并且添加了如下所示的意图过滤器

            <intent-filter>            <action androID:name="androID.nfc.action.TAG_disCOVERED"/>            <category androID:name="androID.intent.category.DEFAulT"/>    </intent-filter>@H_301_10@

我认为这很好,因为当我使用SDK附带的NFCDemo示例应用程序创建MockNDEFTags时,当我可以选择处理这些应用程序生成的标签的应用程序列表出现时.
然后,我单击我的应用程序,它没有问题地打开,我只需要一种方法即可读取NDEF消息中传递给它的数据.编码:

 Tag mytag = (Tag) nfcintent.getParcelableExtra(NfcAdapter.EXTRA_TAG); // get NDEF tag details Ndef ndefTag = Ndef.get(mytag); ... NdefMessage ndefMesg = ndefTag.getCachedndefMessage();@H_301_10@

在类似的问题中被提出,在整个网络上,我发现了许多类似的答案.
我的问题是代码行

"Tag mytag = (Tag) nfcintent.getParcelableExtra(NfcAdapter.EXTRA_TAG);"@H_301_10@

我收到错误消息“无法解决”
我意识到,代码的作者可能将nfcintent用作我的应用程序特定意图的占位符,但是我不确定应该放置什么.

启动我的应用程序的主要活动如下所示

public class TabsActivity extends tabactivity {/** Called when the activity is first created. */@OverrIDepublic 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}@H_301_10@

}

我认为启动应用程序时必须处理NFC标签.如果我只能从标记访问NDEFMessage,那么我已经可以使用androID示例应用程序中的NdefMessageParser对其进行解析.我想解析NDEFmessage中的信息,并最终使该信息可通过应用程序中的每个选项卡访问.

解决方法:

试试这个代码片段从Tag中提取消息:

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();}@H_301_10@

还要查看此样本的NFC Reader/Writer

总结

以上是内存溢出为你收集整理的如何从检测到的NFC标签(NDEF消息)中读取. Android NFC全部内容,希望文章能够帮你解决如何从检测到的NFC标签(NDEF消息)中读取. Android NFC所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1085705.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)