类似的问题- 如何在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创建MockNDEFtags,当应用程序列表,我可以选择处理这些生成的标签出现在我的应用程序中的NFCDemo示例应用程序。 然后我点击我的应用程序,它打开了没有问题,我只是需要一种方法来读取传递给它的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);"
我得到的错误“nfcintent解决不了”我意识到,代码的作者可能把nfcintent作为一个占位符的意图具体到我的应用程序但林不知道什么IM应该放在它的位置。
我mainactivity启动我的应用程序看起来像这样
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解析它的能力。 我想从NDEFmessage解析信息,并最终有通过在应用程序的每个选项卡访问这些信息。